2007-06-07 11:05:04

by Satyam Sharma

[permalink] [raw]
Subject: [PATCH] i386/x86_64: NMI watchdog: Remove spurious local_irq_enable() in check_nmi_watchdog()

There appears to be a spurious local_irq_enable() in the
check_nmi_watchdog() of both i386 and x86_64, I cannot see
when are interrupts being disabled before it. In fact we
seem to be allocating with GFP_KERNEL and calling
smp_call_function() just before this call, which suggests
this call to local_irq_enable() is spurious and can be
removed.

Signed-off-by: Satyam Sharma <[email protected]>
Cc: Ingo Molnar <[email protected]>
Cc: Andi Kleen <[email protected]>

---

arch/i386/kernel/nmi.c | 1 -
arch/x86_64/kernel/nmi.c | 1 -
2 files changed, 2 deletions(-)

---

diff -ruNp a/arch/i386/kernel/nmi.c b/arch/i386/kernel/nmi.c
--- a/arch/i386/kernel/nmi.c 2007-06-07 12:46:34.000000000 +0530
+++ b/arch/i386/kernel/nmi.c 2007-06-07 15:37:57.000000000 +0530
@@ -94,7 +94,6 @@ static int __init check_nmi_watchdog(voi

for_each_possible_cpu(cpu)
prev_nmi_count[cpu] = per_cpu(irq_stat, cpu).__nmi_count;
- local_irq_enable();
mdelay((20*1000)/nmi_hz); // wait 20 ticks

for_each_possible_cpu(cpu) {
diff -ruNp a/arch/x86_64/kernel/nmi.c b/arch/x86_64/kernel/nmi.c
--- a/arch/x86_64/kernel/nmi.c 2007-06-07 12:46:39.000000000 +0530
+++ b/arch/x86_64/kernel/nmi.c 2007-06-07 15:34:19.000000000 +0530
@@ -104,7 +104,6 @@ int __init check_nmi_watchdog (void)

for (cpu = 0; cpu < NR_CPUS; cpu++)
counts[cpu] = cpu_pda(cpu)->__nmi_count;
- local_irq_enable();
mdelay((20*1000)/nmi_hz); // wait 20 ticks

for_each_online_cpu(cpu) {