projects
/
platform
/
kernel
/
linux-exynos.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
8e375cc
)
mxc_nand: fix copy_spare
author
Eric Benard
<eric@eukrea.com>
Wed, 23 Sep 2015 15:07:28 +0000
(17:07 +0200)
committer
Brian Norris
<computersforpeace@gmail.com>
Mon, 28 Sep 2015 00:09:35 +0000
(17:09 -0700)
it was broken by
35d5d20efad8a04c8c002c7f31241dff973977a6
"mtd: mxc_nand: cleanup copy_spare function"
else we get the following error :
[ 22.709507] ubi0: attaching mtd3
[ 23.613470] ubi0: scanning is finished
[ 23.617278] ubi0: empty MTD device detected
[ 23.623219] Unhandled fault: imprecise external abort (0x1c06) at 0x9e62f0ec
[ 23.630291] pgd =
9df80000
[ 23.633005] [
9e62f0ec
] *pgd=
8e60041e
(bad)
[ 23.637064] Internal error: : 1c06 [#1] SMP ARM
[ 23.641605] Modules linked in:
[ 23.644687] CPU: 0 PID: 99 Comm: ubiattach Not tainted 4.2.0-dirty #22
[ 23.651222] Hardware name: Freescale i.MX53 (Device Tree Support)
[ 23.657322] task:
9e687300
ti:
9dcfc000
task.ti:
9dcfc000
[ 23.662744] PC is at memcpy16_toio+0x4c/0x74
[ 23.667026] LR is at mxc_nand_command+0x484/0x640
[ 23.671739] pc : [<
803f9c08
>] lr : [<
803faeb0
>] psr:
60000013
[ 23.671739] sp :
9dcfdb10
ip :
9e62f0ea
fp :
9dcfdb1c
[ 23.683222] r10:
a09c1000
r9 :
0000001a
r8 :
ffffffff
[ 23.688453] r7 :
ffffffff
r6 :
9e674810
r5 :
9e674810
r4 :
000000b6
[ 23.694985] r3 :
a09c16a4
r2 :
a09c16a4
r1 :
a09c16a4
r0 :
0000ffff
[ 23.701521] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
[ 23.708662] Control:
10c5387d
Table:
8df80019
DAC:
00000015
[ 23.714413] Process ubiattach (pid: 99, stack limit = 0x9dcfc210)
[ 23.720514] Stack: (0x9dcfdb10 to 0x9dcfe000)
[ 23.724881] db00:
9dcfdb6c
9dcfdb20
803faeb0
803f9bc8
[ 23.733069] db20:
803f227c
803f9b74
ffffffff
9e674810
9e674810
9e674810
00000040
9e62f010
[ 23.741255] db40:
803faa2c
9e674b40
9e674810
803faa2c
00000400
803faa2c
00000000
9df42800
[ 23.749441] db60:
9dcfdb9c
9dcfdb70
803f2024
803faa38
9e4201cc
00000000
803f0a78
9e674b40
[ 23.757627] db80:
803f1f80
9e674810
00000400
00000400
9dcfdc14
9dcfdba0
803f3bd8
803f1f8c
[ 23.765814] dba0:
9e4201cc
00000000
00000580
00000000
00000000
800718c0
0000007f
00001000
[ 23.774000] dbc0:
9df42800
000000e0
00000000
00000000
9e4201cc
00000000
00000000
00000000
[ 23.782186] dbe0:
00000580
00000580
00000000
9e674810
9dcfdc20
9dcfdce8
9df42800
00580000
[ 23.790372] dc00:
00000000
00000400
9dcfdc6c
9dcfdc18
803f3f94
803f39a4
9dcfdc20
00000000
[ 23.798558] dc20:
00000000
00000400
00000000
00000000
00000000
00000000
9df42800
00000000
[ 23.806744] dc40:
9dcfdd0c
00580000
00000000
00000400
00000000
9df42800
9dee1000
9d802000
[ 23.814930] dc60:
9dcfdc94
9dcfdc70
803eb63c
803f3f38
00000400
9dcfdce8
9df42800
dead4ead
[ 23.823116] dc80:
803eb5f4
00000000
9dcfdcc4
9dcfdc98
803e82ac
803eb600
00000400
9dcfdce8
[ 23.831301] dca0:
9df42800
00000400
9dee0000
00000000
00000400
00000000
9dcfdd1c
9dcfdcc8
[ 23.839488] dcc0:
80406048
803e8230
00000400
9dcfdce8
9df42800
9dcfdc78
00000008
00000000
[ 23.847673] dce0:
00000000
00000000
00000000
00000004
00000000
9df42800
9dee0000
00000000
[ 23.855859] dd00:
9d802030
00000000
9dc8b214
9d802000
9dcfdd44
9dcfdd20
804066cc
80405f50
[ 23.864047] dd20:
00000400
9dc8b200
9d802030
9df42800
9dee0000
9dc8b200
9dcfdd84
9dcfdd48
[ 23.872233] dd40:
8040a544
804065ac
9e401c80
000080d0
9dcfdd84
00000001
800fc828
9df42400
[ 23.880418] dd60:
00000000
00000080
9dc8b200
9dc8b200
9dc8b200
9dee0000
9dcfdddc
9dcfdd88
[ 23.888605] dd80:
803fb560
8040a440
9dcfddc4
9dcfdd98
800f1428
9dee1000
a0acf000
00000000
[ 23.896792] dda0:
00000000
ffffffff
00000006
00000000
9dee0000
9dee0000
00005600
00000080
[ 23.904979] ddc0:
9dc8b200
a0acf000
9dc8b200
8112514c
9dcfde24
9dcfdde0
803fc08c
803fb4f0
[ 23.913165] dde0:
9e401c80
00000013
9dcfde04
9dcfddf8
8006bbf8
8006ba00
9dcfde24
00000000
[ 23.921351] de00:
9dee0000
00000065
9dee0000
00000001
9dc8b200
8112514c
9dcfde84
9dcfde28
[ 23.929538] de20:
8040afa0
803fb948
ffffffff
00000000
9dc8b214
9dcfde40
800f1428
800f11dc
[ 23.937724] de40:
9dc8b21c
9dc8b20c
9dc8b204
9dee1000
9dc8b214
8069bb60
fffff000
fffff000
[ 23.945911] de60:
9e7b5400
00000000
9dee0000
9dee1000
00001000
9e7b5400
9dcfdecc
9dcfde88
[ 23.954097] de80:
803ff1bc
8040a630
9dcfdea4
9dcfde98
00000800
00000800
9dcfdecc
9dcfdea8
[ 23.962284] dea0:
803e8f6c
00000000
7e87ab70
9e7b5400
80113e30
00000003
9dcfc000
00000000
[ 23.970470] dec0:
9dcfdf04
9dcfded0
804008cc
803feb98
ffffffff
00000003
00000000
00000000
[ 23.978656] dee0:
00000000
00000000
9e7cb000
9dc193e0
7e87ab70
9dd92140
9dcfdf7c
9dcfdf08
[ 23.986842] df00:
80113b5c
8040080c
800fbed8
8006bbf0
9e7cb000
00000003
9e7cb000
9dd92140
[ 23.995029] df20:
9dc193e0
9dd92148
9dcfdf4c
9dcfdf38
8011022c
800fbe78
8000f9cc
9e687300
[ 24.003216] df40:
9dcfdf6c
9dcfdf50
8011f798
8007ffe8
7e87ab70
9dd92140
00000003
9dd92140
[ 24.011402] df60:
40186f40
7e87ab70
9dcfc000
00000000
9dcfdfa4
9dcfdf80
80113e30
8011373c
[ 24.019588] df80:
7e87ab70
7e87ab70
7e87aea9
00000036
8000fb84
9dcfc000
00000000
9dcfdfa8
[ 24.027775] dfa0:
8000f9a0
80113e00
7e87ab70
7e87ab70
00000003
40186f40
7e87ab70
00000000
[ 24.035962] dfc0:
7e87ab70
7e87ab70
7e87aea9
00000036
00000000
00000000
76fd1f70
00000000
[ 24.044148] dfe0:
76f80f8c
7e87ab28
00009810
76f80fc4
60000010
00000003
00000000
00000000
[ 24.052328] Backtrace:
[ 24.054806] [<
803f9bbc
>] (memcpy16_toio) from [<
803faeb0
>] (mxc_nand_command+0x484/0x640)
[ 24.062996] [<
803faa2c
>] (mxc_nand_command) from [<
803f2024
>] (nand_write_page+0xa4/0x154)
[ 24.071264] r10:
9df42800
r9:
00000000
r8:
803faa2c
r7:
00000400
r6:
803faa2c
r5:
9e674810
[ 24.079180] r4:
9e674b40
[ 24.081738] [<
803f1f80
>] (nand_write_page) from [<
803f3bd8
>] (nand_do_write_ops+0x240/0x444)
[ 24.090180] r8:
00000400
r7:
00000400
r6:
9e674810
r5:
803f1f80
r4:
9e674b40
[ 24.096970] [<
803f3998
>] (nand_do_write_ops) from [<
803f3f94
>] (nand_write+0x68/0x88)
[ 24.104804] r10:
00000400
r9:
00000000
r8:
00580000
r7:
9df42800
r6:
9dcfdce8
r5:
9dcfdc20
[ 24.112719] r4:
9e674810
[ 24.115287] [<
803f3f2c
>] (nand_write) from [<
803eb63c
>] (part_write+0x48/0x50)
[ 24.122514] r10:
9d802000
r9:
9dee1000
r8:
9df42800
r7:
00000000
r6:
00000400
r5:
00000000
[ 24.130429] r4:
00580000
[ 24.132989] [<
803eb5f4
>] (part_write) from [<
803e82ac
>] (mtd_write+0x88/0xa0)
[ 24.140129] r5:
00000000
r4:
803eb5f4
[ 24.143748] [<
803e8224
>] (mtd_write) from [<
80406048
>] (ubi_io_write+0x104/0x65c)
[ 24.151235] r7:
00000000
r6:
00000400
r5:
00000000
r4:
9dee0000
[ 24.156968] [<
80405f44
>] (ubi_io_write) from [<
804066cc
>] (ubi_io_write_ec_hdr+0x12c/0x190)
[ 24.165323] r10:
9d802000
r9:
9dc8b214
r8:
00000000
r7:
9d802030
r6:
00000000
r5:
9dee0000
[ 24.173239] r4:
9df42800
[ 24.175798] [<
804065a0
>] (ubi_io_write_ec_hdr) from [<
8040a544
>] (ubi_early_get_peb+0x110/0x1f0)
[ 24.184587] r6:
9dc8b200
r5:
9dee0000
r4:
9df42800
[ 24.189262] [<
8040a434
>] (ubi_early_get_peb) from [<
803fb560
>] (create_vtbl+0x7c/0x238)
[ 24.197271] r10:
9dee0000
r9:
9dc8b200
r8:
9dc8b200
r7:
9dc8b200
r6:
00000080
r5:
00000000
[ 24.205187] r4:
9df42400
[ 24.207746] [<
803fb4e4
>] (create_vtbl) from [<
803fc08c
>] (ubi_read_volume_table+0x750/0xa64)
[ 24.216187] r10:
8112514c
r9:
9dc8b200
r8:
a0acf000
r7:
9dc8b200
r6:
00000080
r5:
00005600
[ 24.224103] r4:
9dee0000
[ 24.226662] [<
803fb93c
>] (ubi_read_volume_table) from [<
8040afa0
>] (ubi_attach+0x97c/0x152c)
[ 24.235103] r10:
8112514c
r9:
9dc8b200
r8:
00000001
r7:
9dee0000
r6:
00000065
r5:
9dee0000
[ 24.243018] r4:
00000000
[ 24.245579] [<
8040a624
>] (ubi_attach) from [<
803ff1bc
>] (ubi_attach_mtd_dev+0x630/0xbac)
[ 24.253673] r10:
9e7b5400
r9:
00001000
r8:
9dee1000
r7:
9dee0000
r6:
00000000
r5:
9e7b5400
[ 24.261588] r4:
fffff000
[ 24.264148] [<
803feb8c
>] (ubi_attach_mtd_dev) from [<
804008cc
>] (ctrl_cdev_ioctl+0xcc/0x1cc)
[ 24.272589] r10:
00000000
r9:
9dcfc000
r8:
00000003
r7:
80113e30
r6:
9e7b5400
r5:
7e87ab70
[ 24.280505] r4:
00000000
[ 24.283070] [<
80400800
>] (ctrl_cdev_ioctl) from [<
80113b5c
>] (do_vfs_ioctl+0x42c/0x6c4)
[ 24.291077] r6:
9dd92140
r5:
7e87ab70
r4:
9dc193e0
[ 24.295753] [<
80113730
>] (do_vfs_ioctl) from [<
80113e30
>] (SyS_ioctl+0x3c/0x64)
[ 24.303066] r10:
00000000
r9:
9dcfc000
r8:
7e87ab70
r7:
40186f40
r6:
9dd92140
r5:
00000003
[ 24.310981] r4:
9dd92140
[ 24.313549] [<
80113df4
>] (SyS_ioctl) from [<
8000f9a0
>] (ret_fast_syscall+0x0/0x54)
[ 24.321123] r9:
9dcfc000
r8:
8000fb84
r7:
00000036
r6:
7e87aea9
r5:
7e87ab70
r4:
7e87ab70
[ 24.328957] Code:
e1c300b0
e1510002
e1a03001
1afffff9
(
e89da800
)
[ 24.335066] ---[ end trace
ab1cb17887f21bbb
]---
[ 24.340249] Unhandled fault: imprecise external abort (0x1c06) at 0x7ee8bcf0
[ 24.347310] pgd =
9df3c000
[ 24.350023] [
7ee8bcf0
] *pgd=
8dcbf831
, *pte=
8eb3334f
, *ppte=
8eb3383f
Segmentation fault
Fixes:
35d5d20efad8
("mtd: mxc_nand: cleanup copy_spare function")
Signed-off-by: Eric Bénard <eric@eukrea.com>
Reviewed-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Reviewed-by: Baruch Siach <baruch@tkos.co.il>
Cc: <stable@vger.kernel.org>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
drivers/mtd/nand/mxc_nand.c
patch
|
blob
|
history
diff --git
a/drivers/mtd/nand/mxc_nand.c
b/drivers/mtd/nand/mxc_nand.c
index
2426db8
..
f04445b
100644
(file)
--- a/
drivers/mtd/nand/mxc_nand.c
+++ b/
drivers/mtd/nand/mxc_nand.c
@@
-879,7
+879,7
@@
static void copy_spare(struct mtd_info *mtd, bool bfrom)
oob_chunk_size);
/* the last chunk */
- memcpy16_toio(&s[
oob_chunk_size
* sparebuf_size],
+ memcpy16_toio(&s[
i
* sparebuf_size],
&d[i * oob_chunk_size],
host->used_oobsize - i * oob_chunk_size);
}