| Submitter | Benjamin Herrenschmidt |
|---|---|
| Date | Nov. 28, 2008, 6:05 a.m. |
| Message ID | <20081128060533.BA31ADDDDB@ozlabs.org> |
| Download | mbox | patch |
| Permalink | /patch/11287/ |
| State | Accepted |
| Commit | 4ee5f55175a85fc179c93f00dd7f6a99c896f4d6 |
| Delegated to: | Paul Mackerras |
| Headers | show |
Comments
Patch
--- 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;
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@kernel.crashing.org> --- arch/powerpc/include/asm/mmu_context.h | 3 +++ 1 file changed, 3 insertions(+)