• R
    ARM: Fix ioremap() of address zero · a849088a
    Russell King 提交于
    Murali Nalajala reports a regression that ioremapping address zero
    results in an oops dump:
    
    Unable to handle kernel paging request at virtual address fa200000
    pgd = d4f80000
    [fa200000] *pgd=00000000
    Internal error: Oops: 5 [#1] PREEMPT SMP ARM
    Modules linked in:
    CPU: 0    Tainted: G        W (3.4.0-g3b5f728-00009-g638207a #13)
    PC is at msm_pm_config_rst_vector_before_pc+0x8/0x30
    LR is at msm_pm_boot_config_before_pc+0x18/0x20
    pc : [<c0078f84>]    lr : [<c007903c>]    psr: a0000093
    sp : c0837ef0  ip : cfe00000  fp : 0000000d
    r10: da7efc17  r9 : 225c4278  r8 : 00000006
    r7 : 0003c000  r6 : c085c824  r5 : 00000001  r4 : fa101000
    r3 : fa200000  r2 : c095080c  r1 : 002250fc  r0 : 00000000
    Flags: NzCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM Segment kernel
    Control: 10c5387d  Table: 25180059  DAC: 00000015
    [<c0078f84>] (msm_pm_config_rst_vector_before_pc+0x8/0x30) from [<c007903c>] (msm_pm_boot_config_before_pc+0x18/0x20)
    [<c007903c>] (msm_pm_boot_config_before_pc+0x18/0x20) from [<c007a55c>] (msm_pm_power_collapse+0x410/0xb04)
    [<c007a55c>] (msm_pm_power_collapse+0x410/0xb04) from [<c007b17c>] (arch_idle+0x294/0x3e0)
    [<c007b17c>] (arch_idle+0x294/0x3e0) from [<c000eed8>] (default_idle+0x18/0x2c)
    [<c000eed8>] (default_idle+0x18/0x2c) from [<c000f254>] (cpu_idle+0x90/0xe4)
    [<c000f254>] (cpu_idle+0x90/0xe4) from [<c057231c>] (rest_init+0x88/0xa0)
    [<c057231c>] (rest_init+0x88/0xa0) from [<c07ff890>] (start_kernel+0x3a8/0x40c)
    Code: c0704256 e12fff1e e59f2020 e5923000 (e5930000)
    
    This is caused by the 'reserved' entries which we insert (see
    19b52abe - ARM: 7438/1: fill possible PMD empty section gaps)
    which get matched for physical address zero.
    
    Resolve this by marking these reserved entries with a different flag.
    
    Cc: <stable@vger.kernel.org>
    Tested-by: NMurali Nalajala <mnalajal@codeaurora.org>
    Acked-by: NNicolas Pitre <nico@linaro.org>
    Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
    a849088a
mmu.c 32.5 KB