int generic_cpu_disable(void);
void generic_cpu_die(unsigned int cpu);
void generic_mach_cpu_die(void);
-DECLARE_PER_CPU(int, cpu_state);
+void generic_set_cpu_dead(unsigned int cpu);
#endif
#ifdef CONFIG_PPC64
#ifdef CONFIG_HOTPLUG_CPU
/* State of each CPU during hotplug phases */
-DEFINE_PER_CPU(int, cpu_state) = { 0 };
+static DEFINE_PER_CPU(int, cpu_state) = { 0 };
int generic_cpu_disable(void)
{
while (__get_cpu_var(cpu_state) != CPU_UP_PREPARE)
cpu_relax();
}
+
+void generic_set_cpu_dead(unsigned int cpu)
+{
+ per_cpu(cpu_state, cpu) = CPU_DEAD;
+}
#endif
int __cpuinit __cpu_up(unsigned int cpu)
static void pmac_cpu_die(void)
{
+ int cpu = smp_processor_id();
+
local_irq_disable();
idle_task_exit();
- printk(KERN_DEBUG "CPU%d offline\n", smp_processor_id());
- __get_cpu_var(cpu_state) = CPU_DEAD;
+ pr_debug("CPU%d offline\n", cpu);
+ generic_set_cpu_dead(cpu);
smp_wmb();
mb();
low_cpu_die();
static void pmac_cpu_die(void)
{
+ int cpu = smp_processor_id();
+
local_irq_disable();
idle_task_exit();
* on core99 platforms for now ...
*/
- printk(KERN_INFO "CPU#%d offline\n", smp_processor_id());
- __get_cpu_var(cpu_state) = CPU_DEAD;
+ printk(KERN_INFO "CPU#%d offline\n", cpu);
+ generic_set_cpu_dead(cpu);
smp_wmb();
/*