From: Prarit Bhargava <prarit@redhat.com> Date: Mon, 2 Nov 2009 19:50:55 -0500 Subject: [x86] disable NMI watchdog on CPU remove Message-id: <20091102194911.17719.89030.sendpatchset@prarit.bos.redhat.com> Patchwork-id: 21283 O-Subject: [RHEL5 PATCH]: Disable NMI watchdog on CPU remove Bugzilla: 532514 RH-Acked-by: Aristeu Rozanski <aris@redhat.com> RH-Acked-by: Don Zickus <dzickus@redhat.com> Disable the NMI watchdog when taking a CPU offline. Resolves a panic (please see BZ 532514 for details) Successfully tested on 32 and 64 bit x86 by me. Resolves BZ 532514. diff --git a/arch/i386/kernel/smpboot.c b/arch/i386/kernel/smpboot.c index dad3465..7babd56 100644 --- a/arch/i386/kernel/smpboot.c +++ b/arch/i386/kernel/smpboot.c @@ -1386,6 +1386,8 @@ int __cpu_disable(void) if (cpu == 0) return -EBUSY; + if (nmi_watchdog == NMI_LOCAL_APIC) + stop_apic_nmi_watchdog(); clear_local_APIC(); /* Allow any queued timer interrupts to get serviced */ local_irq_enable(); diff --git a/arch/x86_64/kernel/smpboot.c b/arch/x86_64/kernel/smpboot.c index bad370b..a1c1899 100644 --- a/arch/x86_64/kernel/smpboot.c +++ b/arch/x86_64/kernel/smpboot.c @@ -1254,6 +1254,8 @@ int __cpu_disable(void) if (cpu == 0) return -EBUSY; + if (nmi_watchdog == NMI_LOCAL_APIC) + stop_apic_nmi_watchdog(); clear_local_APIC(); /*