summaryrefslogtreecommitdiff
path: root/include/linux/pgalloc.h
diff options
context:
space:
mode:
authorJoonas Lahtinen <joonas.lahtinen@linux.intel.com>2025-09-16 13:53:20 +0300
committerJoonas Lahtinen <joonas.lahtinen@linux.intel.com>2025-09-16 13:53:20 +0300
commitf088104d837a991c65e51fa30bb4196169b3244d (patch)
treeae53729f52e5c1938f34373cfef77c740defab89 /include/linux/pgalloc.h
parentf4d4097a036ab1ec6bc8154160c49ab9a0a92895 (diff)
parent5770495279d79514989b00fe9ef0ff487bf2e54e (diff)
downloadlinux-f088104d837a991c65e51fa30bb4196169b3244d.tar.xz
Merge drm/drm-next into drm-intel-gt-next
Backmerge in order to get the commit: 048832a3f400 ("drm/i915: Refactor shmem_pwrite() to use kiocb and write_iter") To drm-intel-gt-next as there are followup fixes to be applied. Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Diffstat (limited to 'include/linux/pgalloc.h')
-rw-r--r--include/linux/pgalloc.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/include/linux/pgalloc.h b/include/linux/pgalloc.h
new file mode 100644
index 000000000000..9174fa59bbc5
--- /dev/null
+++ b/include/linux/pgalloc.h
@@ -0,0 +1,29 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef _LINUX_PGALLOC_H
+#define _LINUX_PGALLOC_H
+
+#include <linux/pgtable.h>
+#include <asm/pgalloc.h>
+
+/*
+ * {pgd,p4d}_populate_kernel() are defined as macros to allow
+ * compile-time optimization based on the configured page table levels.
+ * Without this, linking may fail because callers (e.g., KASAN) may rely
+ * on calls to these functions being optimized away when passing symbols
+ * that exist only for certain page table levels.
+ */
+#define pgd_populate_kernel(addr, pgd, p4d) \
+ do { \
+ pgd_populate(&init_mm, pgd, p4d); \
+ if (ARCH_PAGE_TABLE_SYNC_MASK & PGTBL_PGD_MODIFIED) \
+ arch_sync_kernel_mappings(addr, addr); \
+ } while (0)
+
+#define p4d_populate_kernel(addr, p4d, pud) \
+ do { \
+ p4d_populate(&init_mm, p4d, pud); \
+ if (ARCH_PAGE_TABLE_SYNC_MASK & PGTBL_P4D_MODIFIED) \
+ arch_sync_kernel_mappings(addr, addr); \
+ } while (0)
+
+#endif /* _LINUX_PGALLOC_H */