Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 45e07fd0 authored by Benjamin Herrenschmidt's avatar Benjamin Herrenschmidt
Browse files

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: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
parent 1c91cc57
Loading
Loading
Loading
Loading
+5 −12
Original line number Diff line number Diff line
@@ -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
};