diff options
Diffstat (limited to 'arch/x86/kernel/smpboot.c')
| -rw-r--r-- | arch/x86/kernel/smpboot.c | 12 | 
1 files changed, 6 insertions, 6 deletions
diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c index fdbd47ceb84d..69881b2d446c 100644 --- a/arch/x86/kernel/smpboot.c +++ b/arch/x86/kernel/smpboot.c @@ -1023,8 +1023,6 @@ int common_cpu_up(unsigned int cpu, struct task_struct *idle)  static int do_boot_cpu(int apicid, int cpu, struct task_struct *idle,  		       int *cpu0_nmi_registered)  { -	volatile u32 *trampoline_status = -		(volatile u32 *) __va(real_mode_header->trampoline_status);  	/* start_ip had better be page-aligned! */  	unsigned long start_ip = real_mode_header->trampoline_start; @@ -1116,9 +1114,6 @@ static int do_boot_cpu(int apicid, int cpu, struct task_struct *idle,  		}  	} -	/* mark "stuck" area as not stuck */ -	*trampoline_status = 0; -  	if (x86_platform.legacy.warm_reset) {  		/*  		 * Cleanup possible dangling ends... @@ -1596,7 +1591,12 @@ int native_cpu_disable(void)  	if (ret)  		return ret; -	clear_local_APIC(); +	/* +	 * Disable the local APIC. Otherwise IPI broadcasts will reach +	 * it. It still responds normally to INIT, NMI, SMI, and SIPI +	 * messages. +	 */ +	apic_soft_disable();  	cpu_disable_common();  	return 0;  |