diff options
author | Ingo Molnar <mingo@kernel.org> | 2018-04-12 09:42:34 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2018-04-12 09:42:34 +0200 |
commit | ef389b734691cdc8beb009dd402135dcdcb86a56 (patch) | |
tree | 9523a37db93cb7c7874a5f18b4d9a7014898b814 /arch/score/include/asm/tlbflush.h | |
parent | x86/apic: Fix signedness bug in APIC ID validity checks (diff) | |
parent | syscalls/x86: Adapt syscall_wrapper.h to the new syscall stub naming convention (diff) | |
download | linux-dev-ef389b734691cdc8beb009dd402135dcdcb86a56.tar.xz linux-dev-ef389b734691cdc8beb009dd402135dcdcb86a56.zip |
Merge branch 'WIP.x86/asm' into x86/urgent, because the topic is ready
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/score/include/asm/tlbflush.h')
-rw-r--r-- | arch/score/include/asm/tlbflush.h | 143 |
1 files changed, 0 insertions, 143 deletions
diff --git a/arch/score/include/asm/tlbflush.h b/arch/score/include/asm/tlbflush.h deleted file mode 100644 index f48722f4b00e..000000000000 --- a/arch/score/include/asm/tlbflush.h +++ /dev/null @@ -1,143 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 */ -#ifndef _ASM_SCORE_TLBFLUSH_H -#define _ASM_SCORE_TLBFLUSH_H - -#include <linux/mm.h> - -/* - * TLB flushing: - * - * - flush_tlb_all() flushes all processes TLB entries - * - flush_tlb_mm(mm) flushes the specified mm context TLB entries - * - flush_tlb_page(vma, vmaddr) flushes one page - * - flush_tlb_range(vma, start, end) flushes a range of pages - * - flush_tlb_kernel_range(start, end) flushes a range of kernel pages - */ -extern void local_flush_tlb_all(void); -extern void local_flush_tlb_mm(struct mm_struct *mm); -extern void local_flush_tlb_range(struct vm_area_struct *vma, - unsigned long start, unsigned long end); -extern void local_flush_tlb_kernel_range(unsigned long start, - unsigned long end); -extern void local_flush_tlb_page(struct vm_area_struct *vma, - unsigned long page); -extern void local_flush_tlb_one(unsigned long vaddr); - -#define flush_tlb_all() local_flush_tlb_all() -#define flush_tlb_mm(mm) local_flush_tlb_mm(mm) -#define flush_tlb_range(vma, vmaddr, end) \ - local_flush_tlb_range(vma, vmaddr, end) -#define flush_tlb_kernel_range(vmaddr, end) \ - local_flush_tlb_kernel_range(vmaddr, end) -#define flush_tlb_page(vma, page) local_flush_tlb_page(vma, page) -#define flush_tlb_one(vaddr) local_flush_tlb_one(vaddr) - -#ifndef __ASSEMBLY__ - -static inline unsigned long pevn_get(void) -{ - unsigned long val; - - __asm__ __volatile__( - "mfcr %0, cr11\n" - "nop\nnop\n" - : "=r" (val)); - - return val; -} - -static inline void pevn_set(unsigned long val) -{ - __asm__ __volatile__( - "mtcr %0, cr11\n" - "nop\nnop\nnop\nnop\nnop\n" - : : "r" (val)); -} - -static inline void pectx_set(unsigned long val) -{ - __asm__ __volatile__( - "mtcr %0, cr12\n" - "nop\nnop\nnop\nnop\nnop\n" - : : "r" (val)); -} - -static inline unsigned long pectx_get(void) -{ - unsigned long val; - __asm__ __volatile__( - "mfcr %0, cr12\n" - "nop\nnop\n" - : "=r" (val)); - return val; -} -static inline unsigned long tlblock_get(void) -{ - unsigned long val; - - __asm__ __volatile__( - "mfcr %0, cr7\n" - "nop\nnop\n" - : "=r" (val)); - return val; -} -static inline void tlblock_set(unsigned long val) -{ - __asm__ __volatile__( - "mtcr %0, cr7\n" - "nop\nnop\nnop\nnop\nnop\n" - : : "r" (val)); -} - -static inline void tlbpt_set(unsigned long val) -{ - __asm__ __volatile__( - "mtcr %0, cr8\n" - "nop\nnop\nnop\nnop\nnop\n" - : : "r" (val)); -} - -static inline long tlbpt_get(void) -{ - long val; - - __asm__ __volatile__( - "mfcr %0, cr8\n" - "nop\nnop\n" - : "=r" (val)); - - return val; -} - -static inline void peaddr_set(unsigned long val) -{ - __asm__ __volatile__( - "mtcr %0, cr9\n" - "nop\nnop\nnop\nnop\nnop\n" - : : "r" (val)); -} - -/* TLB operations. */ -static inline void tlb_probe(void) -{ - __asm__ __volatile__("stlb;nop;nop;nop;nop;nop"); -} - -static inline void tlb_read(void) -{ - __asm__ __volatile__("mftlb;nop;nop;nop;nop;nop"); -} - -static inline void tlb_write_indexed(void) -{ - __asm__ __volatile__("mtptlb;nop;nop;nop;nop;nop"); -} - -static inline void tlb_write_random(void) -{ - __asm__ __volatile__("mtrtlb;nop;nop;nop;nop;nop"); -} - -#endif /* Not __ASSEMBLY__ */ - -#endif /* _ASM_SCORE_TLBFLUSH_H */ |