diff options
author | Eduardo Habkost <ehabkost@redhat.com> | 2008-11-12 08:34:43 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-11-12 12:55:48 -0500 |
commit | bb8dd270e62217e2d2172094c6c352c4ddc0a127 (patch) | |
tree | b57d4afb0b36564b0af62fd5306837e26f326595 /arch/x86/kernel/reboot.c | |
parent | 2ddded213895e41b9cfe1c084127e6c01632ac1a (diff) |
x86: make nmi_shootdown_cpus() available on !SMP and !X86_LOCAL_APIC
Impact: widen nmi_shootdown_cpus() availability
The X86_LOCAL_APIC #ifdef was for kdump. For !SMP, the function simply
does nothing.
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/reboot.c')
-rw-r--r-- | arch/x86/kernel/reboot.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c index 364edeecc235..17a41e055565 100644 --- a/arch/x86/kernel/reboot.c +++ b/arch/x86/kernel/reboot.c | |||
@@ -519,7 +519,7 @@ void machine_crash_shutdown(struct pt_regs *regs) | |||
519 | #endif | 519 | #endif |
520 | 520 | ||
521 | 521 | ||
522 | #if defined(CONFIG_SMP) && defined(CONFIG_X86_LOCAL_APIC) | 522 | #if defined(CONFIG_SMP) |
523 | 523 | ||
524 | /* This keeps a track of which one is crashing cpu. */ | 524 | /* This keeps a track of which one is crashing cpu. */ |
525 | static int crashing_cpu; | 525 | static int crashing_cpu; |
@@ -568,6 +568,12 @@ static struct notifier_block crash_nmi_nb = { | |||
568 | .notifier_call = crash_nmi_callback, | 568 | .notifier_call = crash_nmi_callback, |
569 | }; | 569 | }; |
570 | 570 | ||
571 | /* Halt all other CPUs, calling the specified function on each of them | ||
572 | * | ||
573 | * This function can be used to halt all other CPUs on crash | ||
574 | * or emergency reboot time. The function passed as parameter | ||
575 | * will be called inside a NMI handler on all CPUs. | ||
576 | */ | ||
571 | void nmi_shootdown_cpus(nmi_shootdown_cb callback) | 577 | void nmi_shootdown_cpus(nmi_shootdown_cb callback) |
572 | { | 578 | { |
573 | unsigned long msecs; | 579 | unsigned long msecs; |
@@ -596,4 +602,9 @@ void nmi_shootdown_cpus(nmi_shootdown_cb callback) | |||
596 | 602 | ||
597 | /* Leave the nmi callback set */ | 603 | /* Leave the nmi callback set */ |
598 | } | 604 | } |
605 | #else /* !CONFIG_SMP */ | ||
606 | void nmi_shootdown_cpus(nmi_shootdown_cb callback) | ||
607 | { | ||
608 | /* No other CPUs to shoot down */ | ||
609 | } | ||
599 | #endif | 610 | #endif |