xref: /openbmc/linux/arch/csky/mm/tlb.c (revision 9d35dc3006a9865eb5b55cc79df49933601131f8)
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