• Tomeu Vizoso's avatar
    memory: omap-gpmc: Don't try to save uninitialized GPMC context · e984a179
    Tomeu Vizoso authored
    If for some reason the GPMC device hasn't been probed yet, gpmc_base is
    going to be NULL. Because there's no context yet to be saved, just turn
    these functions into no-ops until that device gets probed.
    
    Unable to handle kernel NULL pointer dereference at virtual address 00000010
    pgd = c0204000
    [00000010] *pgd=00000000
    Internal error: Oops: 5 [#1] SMP ARM
    Modules linked in:
    CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.2.0-rc5-next-20150804-05947-g23f38fe8eda9 #1
    Hardware name: Generic OMAP3-GP (Flattened Device Tree)
    task: c0e623e8 ti: c0e5c000 task.ti: c0e5c000
    PC is at omap3_gpmc_save_context+0x8/0xc4
    LR is at omap_sram_idle+0x154/0x23c
    pc : [<c087c7ac>]    lr : [<c023262c>]    psr: 60000193
    sp : c0e5df40  ip : c0f92a80  fp : c0999eb0
    r10: c0e57364  r9 : c0e66f14  r8 : 00000003
    r7 : 00000000  r6 : 00000003  r5 : 00000000  r4 : c0f5f174
    r3 : c0fa4fe8  r2 : 00000000  r1 : 00000000  r0 : fa200280
    Flags: nZCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
    Control: 10c5387d  Table: 80204019  DAC: 00000015
    Process swapper/0 (pid: 0, stack limit = 0xc0e5c220)
    Stack: (0xc0e5df40 to 0xc0e5e000)
    df40: 00000000 c0e66ef8 c0f5f1a4 00000000 00000003 c02333a4 c3813822 00000000
    df60: 00000000 c0e5a5c8 cfb8a5d0 c07f0c44 0e4f1d7e 00000000 00000000 00000000
    df80: c3813822 00000000 cfb8a5d0 c0e5e4e4 cfb8a5d0 c0e66f14 c0e5a5c8 c0e5e54c
    dfa0: c0e5e544 c0e57364 c0999eb0 c0277758 000000fa c0f5d000 00000000 c0d61c18
    dfc0: ffffffff ffffffff 00000000 c0d61674 00000000 c0df7a48 00000000 c0f5d5d4
    dfe0: c0e5e4c0 c0df7a44 c0e634f8 80204059 00000000 8020807c 00000000 00000000
    [<c087c7ac>] (omap3_gpmc_save_context) from [<c023262c>] (omap_sram_idle+0x154/0x23c)
    [<c023262c>] (omap_sram_idle) from [<c02333a4>] (omap3_enter_idle_bm+0xec/0x1a8)
    [<c02333a4>] (omap3_enter_idle_bm) from [<c07f0c44>] (cpuidle_enter_state+0xbc/0x284)
    [<c07f0c44>] (cpuidle_enter_state) from [<c0277758>] (cpu_startup_entry+0x174/0x24c)
    [<c0277758>] (cpu_startup_entry) from [<c0d61c18>] (start_kernel+0x358/0x3c0)
    [<c0d61c18>] (start_kernel) from [<8020807c>] (0x8020807c)
    Code: c0ccace8 c0ccacc0 e59f30b4 e5932000 (e5921010)
    Signed-off-by: default avatarTomeu Vizoso <tomeu.vizoso@collabora.com>
    Suggested-by: default avatarJavier Martinez Canillas <javier@dowhile0.org>
    Reviewed-by: default avatarJavier Martinez Canillas <javier@osg.samsung.com>
    Acked-by: default avatarRoger Quadros <rogerq@ti.com>
    [tony@atomide.com: updated description as suggested by Javier]
    Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
    e984a179
omap-gpmc.c 62.9 KB