100a9730eSGuo Ren // SPDX-License-Identifier: GPL-2.0 200a9730eSGuo Ren // Copyright (C) 2018 Hangzhou C-SKY Microsystems co.,ltd. 300a9730eSGuo Ren 400a9730eSGuo Ren #include <linux/init.h> 500a9730eSGuo Ren #include <linux/mm.h> 600a9730eSGuo Ren #include <linux/module.h> 700a9730eSGuo Ren #include <linux/sched.h> 800a9730eSGuo Ren 900a9730eSGuo Ren #include <asm/mmu_context.h> 1000a9730eSGuo Ren #include <asm/pgtable.h> 1100a9730eSGuo Ren #include <asm/setup.h> 1200a9730eSGuo Ren 1300a9730eSGuo Ren void flush_tlb_all(void) 1400a9730eSGuo Ren { 1500a9730eSGuo Ren tlb_invalid_all(); 1600a9730eSGuo Ren } 1700a9730eSGuo Ren 1800a9730eSGuo Ren void flush_tlb_mm(struct mm_struct *mm) 1900a9730eSGuo Ren { 2000a9730eSGuo Ren tlb_invalid_all(); 2100a9730eSGuo Ren } 2200a9730eSGuo Ren 2300a9730eSGuo Ren void flush_tlb_range(struct vm_area_struct *vma, unsigned long start, 2400a9730eSGuo Ren unsigned long end) 2500a9730eSGuo Ren { 26*9d35dc30SGuo Ren tlb_invalid_all(); 2700a9730eSGuo Ren } 2800a9730eSGuo Ren 2900a9730eSGuo Ren void flush_tlb_kernel_range(unsigned long start, unsigned long end) 3000a9730eSGuo Ren { 31*9d35dc30SGuo Ren tlb_invalid_all(); 3200a9730eSGuo Ren } 33*9d35dc30SGuo Ren 34*9d35dc30SGuo Ren void flush_tlb_page(struct vm_area_struct *vma, unsigned long addr) 3500a9730eSGuo Ren { 36*9d35dc30SGuo Ren tlb_invalid_all(); 3700a9730eSGuo Ren } 3800a9730eSGuo Ren 39*9d35dc30SGuo Ren void flush_tlb_one(unsigned long addr) 4000a9730eSGuo Ren { 41*9d35dc30SGuo Ren tlb_invalid_all(); 4200a9730eSGuo Ren } 4300a9730eSGuo Ren EXPORT_SYMBOL(flush_tlb_one); 44