hc
2024-01-05 071106ecf68c401173c58808b1cf5f68cc50d390
kernel/include/xen/arm/page.h
....@@ -3,11 +3,11 @@
33 #define _ASM_ARM_XEN_PAGE_H
44
55 #include <asm/page.h>
6
-#include <asm/pgtable.h>
76
87 #include <linux/pfn.h>
98 #include <linux/types.h>
109 #include <linux/dma-mapping.h>
10
+#include <linux/pgtable.h>
1111
1212 #include <xen/xen.h>
1313 #include <xen/interface/grant_table.h>
....@@ -76,9 +76,16 @@
7676 #define bfn_to_local_pfn(bfn) bfn_to_pfn(bfn)
7777
7878 /* VIRT <-> GUEST conversion */
79
-#define virt_to_gfn(v) (pfn_to_gfn(virt_to_phys(v) >> XEN_PAGE_SHIFT))
79
+#define virt_to_gfn(v) \
80
+ ({ \
81
+ WARN_ON_ONCE(!virt_addr_valid(v)); \
82
+ pfn_to_gfn(virt_to_phys(v) >> XEN_PAGE_SHIFT); \
83
+ })
8084 #define gfn_to_virt(m) (__va(gfn_to_pfn(m) << XEN_PAGE_SHIFT))
8185
86
+#define percpu_to_gfn(v) \
87
+ (pfn_to_gfn(per_cpu_ptr_to_phys(v) >> XEN_PAGE_SHIFT))
88
+
8289 /* Only used in PV code. But ARM guests are always HVM. */
8390 static inline xmaddr_t arbitrary_virt_to_machine(void *vaddr)
8491 {