diff options
Diffstat (limited to 'arch/metag/include/asm/tlbflush.h')
-rw-r--r-- | arch/metag/include/asm/tlbflush.h | 78 |
1 files changed, 0 insertions, 78 deletions
diff --git a/arch/metag/include/asm/tlbflush.h b/arch/metag/include/asm/tlbflush.h deleted file mode 100644 index f3e5d99..0000000 --- a/arch/metag/include/asm/tlbflush.h +++ /dev/null @@ -1,78 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 */ -#ifndef __ASM_METAG_TLBFLUSH_H -#define __ASM_METAG_TLBFLUSH_H - -#include <linux/io.h> -#include <linux/sched.h> -#include <asm/metag_mem.h> -#include <asm/pgalloc.h> - -/* - * TLB flushing: - * - * - flush_tlb() flushes the current mm struct TLBs - * - flush_tlb_all() flushes all processes TLBs - * - flush_tlb_mm(mm) flushes the specified mm context TLB's - * - flush_tlb_page(vma, vmaddr) flushes one page - * - flush_tlb_range(mm, start, end) flushes a range of pages - * - flush_tlb_kernel_range(start, end) flushes a range of kernel pages - * - flush_tlb_pgtables(mm, start, end) flushes a range of page tables - * - * FIXME: Meta 2 can flush single TLB entries. - * - */ - -#if defined(CONFIG_METAG_META21) && !defined(CONFIG_SMP) -static inline void __flush_tlb(void) -{ - /* flush TLB entries for just the current hardware thread */ - int thread = hard_processor_id(); - metag_out32(0, (LINSYSCFLUSH_TxMMCU_BASE + - LINSYSCFLUSH_TxMMCU_STRIDE * thread)); -} -#else -static inline void __flush_tlb(void) -{ - /* flush TLB entries for all hardware threads */ - metag_out32(0, LINSYSCFLUSH_MMCU); -} -#endif /* defined(CONFIG_METAG_META21) && !defined(CONFIG_SMP) */ - -#define flush_tlb() __flush_tlb() - -#define flush_tlb_all() __flush_tlb() - -#define local_flush_tlb_all() __flush_tlb() - -static inline void flush_tlb_mm(struct mm_struct *mm) -{ - if (mm == current->active_mm) - __flush_tlb(); -} - -static inline void flush_tlb_page(struct vm_area_struct *vma, - unsigned long addr) -{ - flush_tlb_mm(vma->vm_mm); -} - -static inline void flush_tlb_range(struct vm_area_struct *vma, - unsigned long start, unsigned long end) -{ - flush_tlb_mm(vma->vm_mm); -} - -static inline void flush_tlb_pgtables(struct mm_struct *mm, - unsigned long start, unsigned long end) -{ - flush_tlb_mm(mm); -} - -static inline void flush_tlb_kernel_range(unsigned long start, - unsigned long end) -{ - flush_tlb_all(); -} - -#endif /* __ASM_METAG_TLBFLUSH_H */ - |