Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 113255
b: refs/heads/master
c: 8227dce
h: refs/heads/master
i:
  113253: 66a3840
  113251: c7455dc
  113247: 7c8abf0
v: v3
  • Loading branch information
Alex Nixon authored and Ingo Molnar committed Aug 25, 2008
1 parent 2e16055 commit d5dd726
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 18 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: a21f5d88c17a40941f6239d1959d89e8493e8e01
refs/heads/master: 8227dce7dc2cfdcc28ee0eadfb482a7ee77fba03
40 changes: 23 additions & 17 deletions trunk/arch/x86/kernel/smpboot.c
Original file line number Diff line number Diff line change
Expand Up @@ -1346,25 +1346,9 @@ static void __ref remove_cpu_from_maps(int cpu)
numa_remove_cpu(cpu);
}

int native_cpu_disable(void)
void cpu_disable_common(void)
{
int cpu = smp_processor_id();

/*
* Perhaps use cpufreq to drop frequency, but that could go
* into generic code.
*
* We won't take down the boot processor on i386 due to some
* interrupts only being able to be serviced by the BSP.
* Especially so if we're not using an IOAPIC -zwane
*/
if (cpu == 0)
return -EBUSY;

if (nmi_watchdog == NMI_LOCAL_APIC)
stop_apic_nmi_watchdog(NULL);
clear_local_APIC();

/*
* HACK:
* Allow any queued timer interrupts to get serviced
Expand All @@ -1382,6 +1366,28 @@ int native_cpu_disable(void)
remove_cpu_from_maps(cpu);
unlock_vector_lock();
fixup_irqs(cpu_online_map);
}

int native_cpu_disable(void)
{
int cpu = smp_processor_id();

/*
* Perhaps use cpufreq to drop frequency, but that could go
* into generic code.
*
* We won't take down the boot processor on i386 due to some
* interrupts only being able to be serviced by the BSP.
* Especially so if we're not using an IOAPIC -zwane
*/
if (cpu == 0)
return -EBUSY;

if (nmi_watchdog == NMI_LOCAL_APIC)
stop_apic_nmi_watchdog(NULL);
clear_local_APIC();

cpu_disable_common();
return 0;
}

Expand Down
1 change: 1 addition & 0 deletions trunk/include/asm-x86/smp.h
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,7 @@ static inline void arch_send_call_function_ipi(cpumask_t mask)
smp_ops.send_call_func_ipi(mask);
}

void cpu_disable_common(void);
void native_smp_prepare_boot_cpu(void);
void native_smp_prepare_cpus(unsigned int max_cpus);
void native_smp_cpus_done(unsigned int max_cpus);
Expand Down

0 comments on commit d5dd726

Please sign in to comment.