• Aneesh Kumar K.V's avatar
    powerpc/mm/subpage: Initialise user psize correctly · 2d566537
    Aneesh Kumar K.V authored
    As part of the radix support we switched Book3s64 to use a value of ~0
    for MMU_NO_CONTEXT. That is because id 0 is special on radix.
    
    However that broke the logic in init_new_context(). The code there needs
    to differentiate between a newly allocated context and one inherited via
    fork. Previously it worked because a newly allocated context has an id
    of zero (because it was just memset() to zero), which used to match
    MMU_NO_CONTEXT, and therefore slice_mm_new_context() did the right
    thing.
    
    Instead check against a context.id value of zero instead of using
    slice_mm_new_context().
    
    Without this patch we never call slice_set_user_psize(), and end up with
    a slice psize value of zero and we always end up using 4K HPTE.
    
    Fixes: 1a472c9d ("powerpc/mm/radix: Add tlbflush routines")
    Signed-off-by: default avatarAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    2d566537
mmu_context_book3s64.c 4.37 KB