• Aneesh Kumar K.V's avatar
    powerpc/mm/radix: Use tlbiel only if we ever ran on the current cpu · bd77c449
    Aneesh Kumar K.V authored
    Before this patch, we used tlbiel, if we ever ran only on this core.
    That was mostly derived from the nohash usage of the same. But is
    incorrect, the ISA 3.0 clarifies tlbiel such that:
    
    "All TLB entries that have all of the following properties are made
    invalid on the thread executing the tlbiel instruction"
    
    ie. tlbiel only invalidates TLB entries on the current thread. So if the
    mm has been used on any other thread (aka. cpu) then we must broadcast
    the invalidate.
    
    This bug could lead to invalid TLB entries if a program runs on multiple
    threads of a core.
    
    Hence use tlbiel, if we only ever ran on only the current cpu.
    
    Fixes: 1a472c9d ("powerpc/mm/radix: Add tlbflush routines")
    Cc: stable@vger.kernel.org # v4.7+
    Signed-off-by: default avatarAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    bd77c449
tlb-radix.c 11 KB