[PATCH RFC 0/2] mtd updates

Shubhrajyoti D shubhrajyoti at ti.com
Mon Jan 23 03:12:39 EST 2012


This patch series does the following
Patch 1:
 
- Prevents the null pointer access
Also fixes the following crash
echo mem > /sys/power/state
[  263.507019] PM: Syncing filesystems ... done.
[  263.516876] PM: Preparing system for mem sleep
[  263.548065] Freezing user space processes ... (elapsed 0.02 seconds) done.
[  263.578308] Freezing remaining freezable tasks ... (elapsed 0.02
seconds) done.
[  263.609374] PM: Entering mem sleep
[  263.620361] Unable to handle kernel NULL pointer dereference at
virtual address 000000a0
[  263.628997] pgd = c7034000
[  263.631866] [000000a0] *pgd=87b9e831, *pte=00000000, *ppte=00000000
[  263.638580] Internal error: Oops: 17 [#1] SMP
[  263.643157] Modules linked in:
[  263.646392] CPU: 0    Tainted: G        W     (3.3.0-rc1-gda9a8ca #12)
[  263.653289] PC is at mtd_cls_suspend+0x8/0x20
[  263.657897] LR is at mtd_cls_suspend+0x8/0x20
[  263.662475] pc : [<c02e7804>]    lr : [<c02e7804>]    psr: a0000113
[  263.662506] sp : c7011e60  ip : 22222222  fp : c06e52a0
[  263.674591] r10: c06e5250  r9 : 00000000  r8 : c02e77fc
[  263.680084] r7 : 00000000  r6 : 00000000  r5 : 00000002  r4 : c7afec00
[  263.686950] r3 : c7afbac0  r2 : 00000000  r1 : 00000002  r0 : 00000000
[  263.693847] Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
[  263.701354] Control: 10c5387d  Table: 87034019  DAC: 00000015
[  263.707397] Process sh (pid: 654, stack limit = 0xc70102f8)
[  263.713287] Stack: (0xc7011e60 to 0xc7012000)
[  263.717864] 1e60: 00000000 c02c2dc0 00000000 c7afec00 00000000
00000000 c7afec00 c0c47ed8
[  263.726501] 1e80: c7afec34 00000002 c06d0fc0 c02c32b8 c02c3464
0047325c c7afec00 c7afec00
[  263.735107] 1ea0: c0c47ed8 00000004 c06e5250 c02c33e0 c7001c00
00000002 60a157bf 0000003d
[  263.743743] 1ec0: 60a157bf 0000003d 00000002 c0710698 00000000
00000003 c06fb910 00000000
[  263.752349] 1ee0: c049bf78 c78019a0 00000002 c007fec8 00000003
c0587e94 00000000 00000004
[  263.760986] 1f00: 00000000 c049bf78 c78019a0 c0080264 c7bd3000
00000003 c0587e94 c007f008
[  263.769592] 1f20: c7b90aa0 c7b90ab8 c7011f80 c783e7a0 c02528b0
c02528c8 00000004 c0166cd4
[  263.778198] 1f40: c7bfb6e0 00000004 b6f88000 c7011f80 00000000
00000000 00000000 c01071b4
[  263.786834] 1f60: c0014280 c7b34240 c7bfb6e0 b6f88000 00000004
00000004 00000000 c0107308
[  263.795440] 1f80: 00000000 00000000 00000004 00000000 00000004
001f6e80 00000004 c0014328
[  263.804077] 1fa0: c7010000 c0014160 00000004 001f6e80 00000001
b6f88000 00000004 00000000
[  263.812683] 1fc0: 00000004 001f6e80 00000004 00000004 b6f88000
001fcfc8 b6f88000 00000002
[  263.821289] 1fe0: 00000000 be8895e0 000fded8 0000921c 60000010
00000001 00000000 00000000
[  263.829956] [<c02e7804>] (mtd_cls_suspend+0x8/0x20) from
[<c02c2dc0>] (legacy_suspend+0x30
/0x78)
[  263.839202] [<c02c2dc0>] (legacy_suspend+0x30/0x78) from
[<c02c32b8>] (__device_suspend+0x
2c8/0x30c)
[  263.848846] [<c02c32b8>] (__device_suspend+0x2c8/0x30c) from
[<c02c33e0>] (dpm_suspend+0x5
8/0x214)
[  263.858306] [<c02c33e0>] (dpm_suspend+0x58/0x214) from [<c007fec8>]
(suspend_devices_and_e
nter+0x78/0x2d8)
[  263.868499] [<c007fec8>] (suspend_devices_and_enter+0x78/0x2d8)
from [<c0080264>] (enter_s
tate+0x13c/0x17c)
[  263.878753] [<c0080264>] (enter_state+0x13c/0x17c) from
[<c007f008>] (state_store+0xd0/0x1
70)
[  263.887756] [<c007f008>] (state_store+0xd0/0x170) from [<c02528c8>]
(kobj_attr_store+0x18/
0x1c)
[  263.896942] [<c02528c8>] (kobj_attr_store+0x18/0x1c) from
[<c0166cd4>] (sysfs_write_file+0
xfc/0x180)
[  263.906585] [<c0166cd4>] (sysfs_write_file+0xfc/0x180) from
[<c01071b4>] (vfs_write+0xb0/0
x134)
[  263.915771] [<c01071b4>] (vfs_write+0xb0/0x134) from [<c0107308>]
(sys_write+0x40/0x70)
[  263.924224] [<c0107308>] (sys_write+0x40/0x70) from [<c0014160>]
(ret_fast_syscall+0x0/0x3
c)
[  263.933105] Code: e3a00000 e8bd8008 e92d4008 ebff57f9 (e59030a0)
[  263.939849] ---[ end trace 1b75b31a2719ed20 ]---

Patch 2:

- Currently mtd_suspend returns an error value -EOPNOTSUPP
if the suspend function is not implemented which prevents the
suspend. This patch prevents the nack of suspend if suspend
is not implemented


Shubhrajyoti D (2):
  mtd : Prevent the NULL pointer access
  mtd : Make the mtd_suspend return 0 if the suspend is not implemented

 drivers/mtd/mtdcore.c   |    5 +++--
 include/linux/mtd/mtd.h |    6 +++---
 2 files changed, 6 insertions(+), 5 deletions(-)




More information about the linux-mtd mailing list