diff options
author | Ingo Molnar <mingo@elte.hu> | 2007-03-22 10:31:19 +0100 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-03-23 03:42:31 +0100 |
commit | 4edc5db83f574dfcc8be35b7b96760ded543b360 (patch) | |
tree | 73130848bbb4706699b70621ee2b4d587830cedf /arch/i386/kernel/apic.c | |
parent | [PATCH] lockdep: debug_show_all_locks & debug_show_held_locks vs. debug_locks (diff) | |
download | linux-4edc5db83f574dfcc8be35b7b96760ded543b360.tar.xz linux-4edc5db83f574dfcc8be35b7b96760ded543b360.zip |
[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.c | 3 |
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) apic_printk(APIC_VERBOSE, "... jiffies result ok\n"); else local_apic_timer_verify_ok = 0; - } + } else + local_irq_enable(); if (!local_apic_timer_verify_ok) { printk(KERN_WARNING |