This is a bugfix patch for crash_kexec_post_notifiers boot option which allows users to call panic notifiers and kmsg dumpers before kdump. This fixes one of the problems reported by Daniel Walker (https://lkml.org/lkml/2015/6/24/44). Problem 1: If crash_kexec_post_notifiers boot option is specified, some shutting down process which assume other cpus are still alive don't work properly. Problem 2 (addressed by this patch): If crash_kexec_post_notifiers boot option is specified, register information of other cpus are not saved to crash dumps. Following Vivek's opinion, this patch replaces smp_send_stop() in panic() with suitable version for crash_kexec which saves cpu states and other things like cleaning up VMX/SVM. Since this needs architecture specific implementation and it's not so trivial, this version only support for x86. So the problem 1, known to happen on MIPS/OCTEON, is not addressed now. To keep the modification impact low, this patch doesn't change the logic basically if crash_kexec_post_notifiers is not specified. Please note that crash_kexec() can be called directly without entering panic(). Stopping other cpus functionality is still needed in crash_kexec(). Changes in V2: - Replace smp_send_stop() call with crash_kexec version which saves cpu states and does cleanups instead of changing execution flow - Drop a fix for Problem 1 - Drop other patches because they aren't needed anymore V1: https://lkml.org/lkml/2015/7/10/316 --- Hidehiro Kawai (1): panic/x86: Replace smp_send_stop() with crash_kexec version arch/x86/kernel/crash.c | 16 +++++++++++----- kernel/panic.c | 29 +++++++++++++++++++++++------ 2 files changed, 34 insertions(+), 11 deletions(-) -- Hidehiro Kawai Hitachi, Ltd. Research & Development Group