Pārlūkot izejas kodu

powerpc: Fix ppc32 mm_struct CPU tracking in SMP

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 will break when we
merge the RCU based page table freeing patch and other upcoming 32-bit
embedded SMP work, so this adds the update.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Benjamin Herrenschmidt 16 gadi atpakaļ
vecāks
revīzija
4ee5f55175
1 mainītis faili ar 3 papildinājumiem un 0 dzēšanām
  1. 3 0
      arch/powerpc/include/asm/mmu_context.h

+ 3 - 0
arch/powerpc/include/asm/mmu_context.h

@@ -180,6 +180,9 @@ static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next,
 
 	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;