diff options
| author | Matt Evans <matt@ozlabs.au.ibm.com> | 2011-03-31 23:33:08 +0400 | 
|---|---|---|
| committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2011-04-05 10:22:11 +0400 | 
| commit | c60e65d7863620945d498a8ac60181077879599c (patch) | |
| tree | a9cb50bc7b778d95514305e3cf629f466f9ccb5d | |
| parent | c1854e00727f50f7ac99e98d26ece04c087ef785 (diff) | |
| download | linux-c60e65d7863620945d498a8ac60181077879599c.tar.xz | |
powerpc/pseries: Fix build without CONFIG_HOTPLUG_CPU
Signed-off-by: Matt Evans <matt@ozlabs.au.ibm.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
| -rw-r--r-- | arch/powerpc/platforms/pseries/smp.c | 17 | 
1 files changed, 11 insertions, 6 deletions
| diff --git a/arch/powerpc/platforms/pseries/smp.c b/arch/powerpc/platforms/pseries/smp.c index d6479f9738f0..a509c5292a67 100644 --- a/arch/powerpc/platforms/pseries/smp.c +++ b/arch/powerpc/platforms/pseries/smp.c @@ -112,10 +112,10 @@ static inline int __devinit smp_startup_cpu(unsigned int lcpu)  	/* Fixup atomic count: it exited inside IRQ handler. */  	task_thread_info(paca[lcpu].__current)->preempt_count	= 0; - +#ifdef CONFIG_HOTPLUG_CPU  	if (get_cpu_current_state(lcpu) == CPU_STATE_INACTIVE)  		goto out; - +#endif  	/*   	 * If the RTAS start-cpu token does not exist then presume the  	 * cpu is already spinning. @@ -130,7 +130,9 @@ static inline int __devinit smp_startup_cpu(unsigned int lcpu)  		return 0;  	} +#ifdef CONFIG_HOTPLUG_CPU  out: +#endif  	return 1;  } @@ -144,16 +146,15 @@ static void __devinit smp_xics_setup_cpu(int cpu)  		vpa_init(cpu);  	cpumask_clear_cpu(cpu, of_spin_mask); +#ifdef CONFIG_HOTPLUG_CPU  	set_cpu_current_state(cpu, CPU_STATE_ONLINE);  	set_default_offline_state(cpu); - +#endif  }  #endif /* CONFIG_XICS */  static void __devinit smp_pSeries_kick_cpu(int nr)  { -	long rc; -	unsigned long hcpuid;  	BUG_ON(nr < 0 || nr >= NR_CPUS);  	if (!smp_startup_cpu(nr)) @@ -165,16 +166,20 @@ static void __devinit smp_pSeries_kick_cpu(int nr)  	 * the processor will continue on to secondary_start  	 */  	paca[nr].cpu_start = 1; - +#ifdef CONFIG_HOTPLUG_CPU  	set_preferred_offline_state(nr, CPU_STATE_ONLINE);  	if (get_cpu_current_state(nr) == CPU_STATE_INACTIVE) { +		long rc; +		unsigned long hcpuid; +  		hcpuid = get_hard_smp_processor_id(nr);  		rc = plpar_hcall_norets(H_PROD, hcpuid);  		if (rc != H_SUCCESS)  			printk(KERN_ERR "Error: Prod to wake up processor %d "  						"Ret= %ld\n", nr, rc);  	} +#endif  }  static int smp_pSeries_cpu_bootable(unsigned int nr) | 
