cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

tlbflush.h (1683B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2#ifndef __ASM_TLBFLUSH_H
      3#define __ASM_TLBFLUSH_H
      4
      5#include <linux/mm.h>
      6
      7/*
      8 * TLB flushing:
      9 *
     10 *  - flush_tlb_all() flushes all processes TLB entries
     11 *  - flush_tlb_mm(mm) flushes the specified mm context TLB entries
     12 *  - flush_tlb_page(vma, vmaddr) flushes one page
     13 *  - flush_tlb_range(vma, start, end) flushes a range of pages
     14 *  - flush_tlb_kernel_range(start, end) flushes a range of kernel pages
     15 */
     16extern void local_flush_tlb_all(void);
     17extern void local_flush_tlb_range(struct vm_area_struct *vma,
     18	unsigned long start, unsigned long end);
     19extern void local_flush_tlb_kernel_range(unsigned long start,
     20	unsigned long end);
     21extern void local_flush_tlb_page(struct vm_area_struct *vma,
     22	unsigned long page);
     23extern void local_flush_tlb_one(unsigned long vaddr);
     24
     25#include <asm/mmu_context.h>
     26
     27#ifdef CONFIG_SMP
     28
     29extern void flush_tlb_all(void);
     30extern void flush_tlb_mm(struct mm_struct *);
     31extern void flush_tlb_range(struct vm_area_struct *vma, unsigned long,
     32	unsigned long);
     33extern void flush_tlb_kernel_range(unsigned long, unsigned long);
     34extern void flush_tlb_page(struct vm_area_struct *, unsigned long);
     35extern void flush_tlb_one(unsigned long vaddr);
     36
     37#else /* CONFIG_SMP */
     38
     39#define flush_tlb_all()			local_flush_tlb_all()
     40#define flush_tlb_mm(mm)		drop_mmu_context(mm)
     41#define flush_tlb_range(vma, vmaddr, end)	local_flush_tlb_range(vma, vmaddr, end)
     42#define flush_tlb_kernel_range(vmaddr,end) \
     43	local_flush_tlb_kernel_range(vmaddr, end)
     44#define flush_tlb_page(vma, page)	local_flush_tlb_page(vma, page)
     45#define flush_tlb_one(vaddr)		local_flush_tlb_one(vaddr)
     46
     47#endif /* CONFIG_SMP */
     48
     49#endif /* __ASM_TLBFLUSH_H */