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

Commit decbb280 authored by Kumar Gala's avatar Kumar Gala
Browse files

powerpc/85xx: Fix writing to spin table 'cpu-release-addr' on ppc64e



If the spin table is located in the linear mapping (which can happen if
we have 4G or more of memory) we need to access the spin table via a
cacheable coherent mapping like we do on ppc32 (and do explicit cache
flush).

See the following commit for the ppc32 version of this issue:

commit d1d47ec6
Author: Peter Tyser <ptyser@xes-inc.com>
Date:   Fri Dec 18 16:50:37 2009 -0600

    powerpc/85xx: Fix SMP when "cpu-release-addr" is in lowmem

Signed-off-by: default avatarKumar Gala <galak@kernel.crashing.org>
parent 964a2996
Loading
Loading
Loading
Loading
+5 −1
Original line number Original line Diff line number Diff line
@@ -91,10 +91,14 @@ smp_85xx_kick_cpu(int nr)
	while ((__secondary_hold_acknowledge != nr) && (++n < 1000))
	while ((__secondary_hold_acknowledge != nr) && (++n < 1000))
		mdelay(1);
		mdelay(1);
#else
#else
	smp_generic_kick_cpu(nr);

	out_be64((u64 *)(bptr_vaddr + BOOT_ENTRY_ADDR_UPPER),
	out_be64((u64 *)(bptr_vaddr + BOOT_ENTRY_ADDR_UPPER),
		__pa((u64)*((unsigned long long *) generic_secondary_smp_init)));
		__pa((u64)*((unsigned long long *) generic_secondary_smp_init)));


	smp_generic_kick_cpu(nr);
	if (!ioremappable)
		flush_dcache_range((ulong)bptr_vaddr,
				(ulong)(bptr_vaddr + SIZE_BOOT_ENTRY));
#endif
#endif


	local_irq_restore(flags);
	local_irq_restore(flags);