• Yanjiang Jin's avatar
    powerpc/mpc85xx: call k(un)map_atomic rather than k(un)map · 88b7936d
    Yanjiang Jin authored
    The k(un)map function may be called in atomic context in the
    function map_and_flush(), so use k(un)map_atomic to replace it,
    else we would get the below warning during kdump:
    
    BUG: sleeping function called from invalid context at include/linux/highmem.h:58
    in_atomic(): 1, irqs_disabled(): 1, pid: 736, name: sh
    INFO: lockdep is turned off.
    irq event stamp: 0
    hardirqs last  enabled at (0): [<          (null)>]           (null)
    hardirqs last disabled at (0): [<c000000000066d1c>] .copy_process.part.44+0x50c/0x1360
    softirqs last  enabled at (0): [<c000000000066d1c>] .copy_process.part.44+0x50c/0x1360
    softirqs last disabled at (0): [<          (null)>]           (null)
    CPU: 1 PID: 736 Comm: sh Tainted: G      D W    3.10.62-ltsi-WR6.0.0.0_standard #2
    Call Trace:
    [c0000000f47cf120] [c00000000000b150] .show_stack+0x170/0x290 (unreliable)
    [c0000000f47cf210] [c000000000b71334] .dump_stack+0x28/0x3c
    [c0000000f47cf280] [c0000000000bb5d8] .__might_sleep+0x1a8/0x270
    [c0000000f47cf310] [c0000000000440cc] .map_and_flush+0x4c/0xc0
    [c0000000f47cf390] [c0000000000441cc] .mpc85xx_smp_machine_kexec+0x8c/0xec0
    [c0000000f47cf420] [c00000000002ae00] .machine_kexec+0x60/0x90
    [c0000000f47cf4b0] [c00000000010957c] .crash_kexec+0x8c/0x100
    [c0000000f47cf6a0] [c000000000015df8] .die+0x348/0x450
    [c0000000f47cf740] [c00000000002f3a0] .bad_page_fault+0xe0/0x130
    [c0000000f47cf7c0] [c00000000001f3e4] storage_fault_common+0x40/0x44
    Signed-off-by: default avatarYanjiang Jin <yanjiang.jin@windriver.com>
    [scottwood@freescale.com: fix subject line]
    Signed-off-by: default avatarScott Wood <scottwood@freescale.com>
    88b7936d
smp.c 11.5 KB