• Aneesh Kumar K.V's avatar
    powerpc/mm/radix: Flush page walk cache when freeing page table · a145abf1
    Aneesh Kumar K.V authored
    Even though a tlb_flush() does a flush with invalidate all cache,
    we can end up doing an RCU page table free before calling tlb_flush().
    That means we can have page walk cache entries even after we free the
    page table pages. This can result in us doing wrong page table walk.
    
    Avoid this by doing pwc flush on every page table free. We can't batch
    the pwc flush, because the rcu call back function where we free the
    page table pages doesn't have information of the mmu gather. Thus we
    have to do a pwc on every page table page freed.
    
    Note: I also removed the dummy tlb_flush_pgtable call functions for
    hash 32.
    
    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>
    a145abf1
tlbflush.h 2.3 KB