[PATCH] powerpc: Fix ppc32 mm_struct CPU tracking in SMP
Benjamin Herrenschmidt
benh at kernel.crashing.org
Fri Nov 28 17:05:05 EST 2008
The 32-bit hash code didn't need it so far so we don't update
mm->cpu_vm_mask on context switch. This however breaks the
merge of the RCU based page table freeing and other upcoming
32-bit embedded SMP work.
Signed-off-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>
---
arch/powerpc/include/asm/mmu_context.h | 3 +++
1 file changed, 3 insertions(+)
--- linux-476.orig/arch/powerpc/include/asm/mmu_context.h 2008-11-28 15:46:39.000000000 +1100
+++ linux-476/arch/powerpc/include/asm/mmu_context.h 2008-11-28 16:59:06.000000000 +1100
@@ -186,6 +186,9 @@ static inline void switch_mm(struct mm_s
tsk->thread.pgdir = next->pgd;
+ if (!cpu_isset(smp_processor_id(), next->cpu_vm_mask))
+ cpu_set(smp_processor_id(), next->cpu_vm_mask);
+
/* No need to flush userspace segments if the mm doesnt change */
if (prev == next)
return;
More information about the Linuxppc-dev
mailing list