• David Gibson's avatar
    [POWERPC] Cleanup and fix breakage in tlbflush.h · 62102307
    David Gibson authored
    BenH's commit a741e679 in powerpc.git,
    although (AFAICT) only intended to affect ppc64, also has side-effects
    which break 44x.  I think 40x, 8xx and Freescale Book E are also
    affected, though I haven't tested them.
    
    The problem lies in unconditionally removing flush_tlb_pending() from
    the versions of flush_tlb_mm(), flush_tlb_range() and
    flush_tlb_kernel_range() used on ppc64 - which are also used the
    embedded platforms mentioned above.
    
    The patch below cleans up the convoluted #ifdef logic in tlbflush.h,
    in the process restoring the necessary flushes for the software TLB
    platforms.  There are three sets of definitions for the flushing
    hooks: the software TLB versions (revised to avoid using names which
    appear to related to TLB batching), the 32-bit hash based versions
    (external functions) amd the 64-bit hash based versions (which
    implement batching).
    
    It also moves the declaration of update_mmu_cache() to always be in
    tlbflush.h (previously it was in tlbflush.h except for PPC64, where it
    was in pgtable.h).
    
    Booted on Ebony (440GP) and compiled for 64-bit and 32-bit
    multiplatform.
    Signed-off-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
    Acked-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
    62102307
tlbflush.h 4.81 KB