hc
2024-12-19 9370bb92b2d16684ee45cf24e879c93c509162da
kernel/arch/arm64/include/asm/page.h
....@@ -1,20 +1,9 @@
1
+/* SPDX-License-Identifier: GPL-2.0-only */
12 /*
23 * Based on arch/arm/include/asm/page.h
34 *
45 * Copyright (C) 1995-2003 Russell King
56 * Copyright (C) 2012 ARM Ltd.
6
- *
7
- * This program is free software; you can redistribute it and/or modify
8
- * it under the terms of the GNU General Public License version 2 as
9
- * published by the Free Software Foundation.
10
- *
11
- * This program is distributed in the hope that it will be useful,
12
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
- * GNU General Public License for more details.
15
- *
16
- * You should have received a copy of the GNU General Public License
17
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
187 */
198 #ifndef __ASM_PAGE_H
209 #define __ASM_PAGE_H
....@@ -24,34 +13,41 @@
2413 #ifndef __ASSEMBLY__
2514
2615 #include <linux/personality.h> /* for READ_IMPLIES_EXEC */
16
+#include <linux/types.h> /* for gfp_t */
2717 #include <asm/pgtable-types.h>
2818
29
-extern void __cpu_clear_user_page(void *p, unsigned long user);
30
-extern void __cpu_copy_user_page(void *to, const void *from,
31
- unsigned long user);
19
+struct page;
20
+struct vm_area_struct;
21
+
3222 extern void copy_page(void *to, const void *from);
3323 extern void clear_page(void *to);
3424
35
-#define __alloc_zeroed_user_highpage(movableflags, vma, vaddr) \
36
- alloc_page_vma(GFP_HIGHUSER | __GFP_ZERO | movableflags, vma, vaddr)
37
-#define __HAVE_ARCH_ALLOC_ZEROED_USER_HIGHPAGE
25
+void copy_user_highpage(struct page *to, struct page *from,
26
+ unsigned long vaddr, struct vm_area_struct *vma);
27
+#define __HAVE_ARCH_COPY_USER_HIGHPAGE
3828
39
-#define clear_user_page(addr,vaddr,pg) __cpu_clear_user_page(addr, vaddr)
40
-#define copy_user_page(to,from,vaddr,pg) __cpu_copy_user_page(to, from, vaddr)
29
+void copy_highpage(struct page *to, struct page *from);
30
+#define __HAVE_ARCH_COPY_HIGHPAGE
31
+
32
+struct page *alloc_zeroed_user_highpage_movable(struct vm_area_struct *vma,
33
+ unsigned long vaddr);
34
+#define __HAVE_ARCH_ALLOC_ZEROED_USER_HIGHPAGE_MOVABLE
35
+
36
+void tag_clear_highpage(struct page *to);
37
+#define __HAVE_ARCH_TAG_CLEAR_HIGHPAGE
38
+
39
+#define clear_user_page(page, vaddr, pg) clear_page(page)
40
+#define copy_user_page(to, from, vaddr, pg) copy_page(to, from)
4141
4242 typedef struct page *pgtable_t;
4343
44
-#ifdef CONFIG_HAVE_ARCH_PFN_VALID
4544 extern int pfn_valid(unsigned long);
46
-#endif
4745
4846 #include <asm/memory.h>
4947
5048 #endif /* !__ASSEMBLY__ */
5149
52
-#define VM_DATA_DEFAULT_FLAGS \
53
- (((current->personality & READ_IMPLIES_EXEC) ? VM_EXEC : 0) | \
54
- VM_READ | VM_WRITE | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
50
+#define VM_DATA_DEFAULT_FLAGS (VM_DATA_FLAGS_TSK_EXEC | VM_MTE_ALLOWED)
5551
5652 #include <asm-generic/getorder.h>
5753