X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=arch%2Fpowerpc%2Fmm%2Fmmu_context_64.c;h=1db38ba1f544e003a40c48a9b5652834bfa4bf27;hb=6d2170be4561293a6aa821c773687bd3f18e8206;hp=e2051efa09c58d413d95814615c94f2d683b8b22;hpb=8d231c11fd0b694c447e59e687754b6999eea0a2;p=deliverable%2Flinux.git diff --git a/arch/powerpc/mm/mmu_context_64.c b/arch/powerpc/mm/mmu_context_64.c index e2051efa09c5..1db38ba1f544 100644 --- a/arch/powerpc/mm/mmu_context_64.c +++ b/arch/powerpc/mm/mmu_context_64.c @@ -10,7 +10,6 @@ * */ -#include #include #include #include @@ -50,10 +49,13 @@ again: return -ENOMEM; } + /* The old code would re-promote on fork, we don't do that + * when using slices as it could cause problem promoting slices + * that have been forced down to 4K + */ + if (slice_mm_new_context(mm)) + slice_set_user_psize(mm, mmu_virtual_psize); mm->context.id = index; - mm->context.user_psize = mmu_virtual_psize; - mm->context.sllp = SLB_VSID_USER | - mmu_psize_defs[mmu_virtual_psize].sllp; return 0; }