1
0
Fork 0

powerpc/pmac/smp: Fixup smp_core99_cpu_disable() and use it on 64-bit

Use the generic code, just add the MPIC priority setting,

I don't see any use in mucking around with the decrementer,
as 32-bit will have EE off all along, and 64-bit will be able
to deal with it.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
hifive-unleashed-5.1
Benjamin Herrenschmidt 2011-02-21 16:31:49 +11:00
parent 1c91cc5705
commit 45e07fd045
1 changed files with 5 additions and 12 deletions

View File

@ -867,16 +867,14 @@ static void __devinit smp_core99_setup_cpu(int cpu_nr)
#if defined(CONFIG_HOTPLUG_CPU) && defined(CONFIG_PPC32)
int smp_core99_cpu_disable(void)
static int smp_core99_cpu_disable(void)
{
set_cpu_online(smp_processor_id(), false);
int rc = generic_cpu_disable();
if (rc)
return rc;
/* XXX reset cpu affinity here */
mpic_cpu_set_priority(0xf);
asm volatile("mtdec %0" : : "r" (0x7fffffff));
mb();
udelay(20);
asm volatile("mtdec %0" : : "r" (0x7fffffff));
return 0;
}
@ -902,12 +900,7 @@ struct smp_ops_t core99_smp_ops = {
.give_timebase = smp_core99_give_timebase,
.take_timebase = smp_core99_take_timebase,
#if defined(CONFIG_HOTPLUG_CPU)
# if defined(CONFIG_PPC32)
.cpu_disable = smp_core99_cpu_disable,
# endif
# if defined(CONFIG_PPC64)
.cpu_disable = generic_cpu_disable,
# endif
.cpu_die = generic_cpu_die,
#endif
};