• Matt Redfearn's avatar
    MIPS: tlb-r4k: If there are wired entries, don't use TLBINVF · e710d666
    Matt Redfearn authored
    When adding a wired entry to the TLB via add_wired_entry, the tlb is
    flushed with local_flush_tlb_all, which on CPUs with TLBINV results in
    the new wired entry being flushed again.
    
    Behavior of the TLBINV instruction applies to all applicable TLB entries
    and is unaffected by the setting of the Wired register. Therefore if
    the TLB has any wired entries, fall back to iterating over the entries
    rather than blasting them all using TLBINVF.
    Signed-off-by: default avatarMatt Redfearn <matt.redfearn@imgtec.com>
    Cc: Bjorn Andersson <bjorn.andersson@linaro.org>
    Cc: Ohad Ben-Cohen <ohad@wizery.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: lisa.parratt@imgtec.com
    Cc: Hugh Dickins <hughd@google.com>
    Cc: Huacai Chen <chenhc@lemote.com>
    Cc: David S. Miller <davem@davemloft.net>
    Cc: James Hogan <james.hogan@imgtec.com>
    Cc: Paul Burton <paul.burton@imgtec.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: linux-mips@linux-mips.org
    Cc: linux-remoteproc@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/14283/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
    e710d666
tlb-r4k.c 13 KB