hc
2024-05-14 bedbef8ad3e75a304af6361af235302bcc61d06b
kernel/arch/nios2/include/asm/tlbflush.h
....@@ -1,19 +1,6 @@
1
+/* SPDX-License-Identifier: GPL-2.0-or-later */
12 /*
23 * Copyright (C) 2010 Tobias Klauser <tklauser@distanz.ch>
3
- *
4
- * This program is free software; you can redistribute it and/or modify
5
- * it under the terms of the GNU General Public License as published by
6
- * the Free Software Foundation; either version 2 of the License, or
7
- * (at your option) any later version.
8
- *
9
- * This program is distributed in the hope that it will be useful,
10
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- * GNU General Public License for more details.
13
- *
14
- * You should have received a copy of the GNU General Public License
15
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
16
- *
174 */
185
196 #ifndef _ASM_NIOS2_TLBFLUSH_H
....@@ -26,21 +13,32 @@
2613 *
2714 * - flush_tlb_all() flushes all processes TLB entries
2815 * - flush_tlb_mm(mm) flushes the specified mm context TLB entries
29
- * - flush_tlb_page(vma, vmaddr) flushes one page
3016 * - flush_tlb_range(vma, start, end) flushes a range of pages
17
+ * - flush_tlb_page(vma, address) flushes a page
3118 * - flush_tlb_kernel_range(start, end) flushes a range of kernel pages
19
+ * - flush_tlb_kernel_page(address) flushes a kernel page
20
+ *
21
+ * - reload_tlb_page(vma, address, pte) flushes the TLB for address like
22
+ * flush_tlb_page, then replaces it with a TLB for pte.
3223 */
3324 extern void flush_tlb_all(void);
3425 extern void flush_tlb_mm(struct mm_struct *mm);
3526 extern void flush_tlb_range(struct vm_area_struct *vma, unsigned long start,
3627 unsigned long end);
3728 extern void flush_tlb_kernel_range(unsigned long start, unsigned long end);
38
-extern void flush_tlb_one(unsigned long vaddr);
3929
4030 static inline void flush_tlb_page(struct vm_area_struct *vma,
41
- unsigned long addr)
31
+ unsigned long address)
4232 {
43
- flush_tlb_one(addr);
33
+ flush_tlb_range(vma, address, address + PAGE_SIZE);
4434 }
4535
36
+static inline void flush_tlb_kernel_page(unsigned long address)
37
+{
38
+ flush_tlb_kernel_range(address, address + PAGE_SIZE);
39
+}
40
+
41
+extern void reload_tlb_page(struct vm_area_struct *vma, unsigned long addr,
42
+ pte_t pte);
43
+
4644 #endif /* _ASM_NIOS2_TLBFLUSH_H */