aboutsummaryrefslogtreecommitdiffstats
path: root/arch/i386/kernel/apic.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2007-03-22 05:31:19 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-03-22 22:42:31 -0400
commit4edc5db83f574dfcc8be35b7b96760ded543b360 (patch)
tree73130848bbb4706699b70621ee2b4d587830cedf /arch/i386/kernel/apic.c
parent9c35dd7f8bda1849dcb430be99325504221048df (diff)
[PATCH] setup_boot_APIC_clock() irq-enable fix
latest -git triggers an irqtrace/lockdep warning of a leaked irqs-off condition: BUG: at kernel/fork.c:1033 copy_process() after some debugging it turns out that commit ca1b940c accidentally left interrupts disabled - which trickled down all the way to the first time we fork a kernel thread and triggered the warning. the fix is to re-enable interrupts in the 'else' branch of setup_boot_APIC_clock()'s pmtimers calibration path. Reported-by: Michal Piotrowski <michal.k.k.piotrowski@gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu> Acked-by: Thomas Gleixner <tglx@brown.paperbag.linutronix.de> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/i386/kernel/apic.c')
-rw-r--r--arch/i386/kernel/apic.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/i386/kernel/apic.c b/arch/i386/kernel/apic.c
index 36825117835d..244c3fe9b8c3 100644
--- a/arch/i386/kernel/apic.c
+++ b/arch/i386/kernel/apic.c
@@ -506,7 +506,8 @@ void __init setup_boot_APIC_clock(void)
506 apic_printk(APIC_VERBOSE, "... jiffies result ok\n"); 506 apic_printk(APIC_VERBOSE, "... jiffies result ok\n");
507 else 507 else
508 local_apic_timer_verify_ok = 0; 508 local_apic_timer_verify_ok = 0;
509 } 509 } else
510 local_irq_enable();
510 511
511 if (!local_apic_timer_verify_ok) { 512 if (!local_apic_timer_verify_ok) {
512 printk(KERN_WARNING 513 printk(KERN_WARNING