• Mårten Lindahl's avatar
    ARM: 9317/1: kexec: Make smp stop calls asynchronous · 8922ba71
    Mårten Lindahl authored
    If a panic is triggered by a hrtimer interrupt all online cpus will be
    notified and set offline. But as highlighted by commit 19dbdcb8
    ("smp: Warn on function calls from softirq context") this call should
    not be made synchronous with disabled interrupts:
    
     softdog: Initiating panic
     Kernel panic - not syncing: Software Watchdog Timer expired
     WARNING: CPU: 1 PID: 0 at kernel/smp.c:753 smp_call_function_many_cond
       unwind_backtrace:
         show_stack
         dump_stack_lvl
         __warn
         warn_slowpath_fmt
         smp_call_function_many_cond
         smp_call_function
         crash_smp_send_stop.part.0
         machine_crash_shutdown
         __crash_kexec
         panic
         softdog_fire
         __hrtimer_run_queues
         hrtimer_interrupt
    
    Make the smp call for machine_crash_nonpanic_core() asynchronous.
    Signed-off-by: default avatarMårten Lindahl <marten.lindahl@axis.com>
    Signed-off-by: default avatarRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
    8922ba71
machine_kexec.c 4.98 KB