mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-26 04:16:39 +00:00
[PATCH] x86_64: avoid SMP boot up race
Keep interrupts disabled during smp bootup This avoids a race that breaks SMP bootup on some machines. The race is not fully plugged (that is only done with much more changes in 2.6.12), but should be good enough for most people. Keeping the interrupts disabled here is ok because we don't rely on the timer interrupt for local APIC timer setup, but always read the timer registers directly. (originally from Rusty Russell iirc) Signed-off-by: ak@suse.de Signed-off-by: Chris Wright <chrisw@osdl.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
08373277d6
commit
51af80e5f4
2 changed files with 0 additions and 6 deletions
|
@ -775,9 +775,7 @@ void __init setup_boot_APIC_clock (void)
|
|||
|
||||
void __init setup_secondary_APIC_clock(void)
|
||||
{
|
||||
local_irq_disable(); /* FIXME: Do we need this? --RR */
|
||||
setup_APIC_timer(calibration_result);
|
||||
local_irq_enable();
|
||||
}
|
||||
|
||||
void __init disable_APIC_timer(void)
|
||||
|
|
|
@ -309,8 +309,6 @@ void __init smp_callin(void)
|
|||
Dprintk("CALLIN, before setup_local_APIC().\n");
|
||||
setup_local_APIC();
|
||||
|
||||
local_irq_enable();
|
||||
|
||||
/*
|
||||
* Get our bogomips.
|
||||
*/
|
||||
|
@ -324,8 +322,6 @@ void __init smp_callin(void)
|
|||
*/
|
||||
smp_store_cpu_info(cpuid);
|
||||
|
||||
local_irq_disable();
|
||||
|
||||
/*
|
||||
* Allow the master to continue.
|
||||
*/
|
||||
|
|
Loading…
Reference in a new issue