@@ -76,6 +76,7 @@ choice
config MMU
bool "MMU"
select HAS_LLC_COLORING if !NUMA && ARM_64
+ select HAS_PAGING_MEMPOOL
select HAS_PMAP
select HAS_VMAP
select HAS_PASSTHROUGH
@@ -158,6 +159,9 @@ config VGICV2
config HVM
def_bool y
+config HAS_PAGING_MEMPOOL
+ bool
+
config NEW_VGIC
bool "Use new VGIC implementation"
select GICV2
@@ -865,11 +865,13 @@ static int __init construct_domU(struct domain *d,
p2m_mem_mb << (20 - PAGE_SHIFT) :
domain_p2m_pages(mem, d->max_vcpus);
+#ifdef CONFIG_HAS_PAGING_MEMPOOL
spin_lock(&d->arch.paging.lock);
rc = p2m_set_allocation(d, p2m_pages, NULL);
spin_unlock(&d->arch.paging.lock);
if ( rc != 0 )
return rc;
+#endif
printk("*** LOADING DOMU cpus=%u memory=%#"PRIx64"KB ***\n",
d->max_vcpus, mem);
@@ -75,7 +75,9 @@ struct arch_domain
struct hvm_domain hvm;
+#ifdef CONFIG_HAS_PAGING_MEMPOOL
struct paging_domain paging;
+#endif
struct vmmio vmmio;
@@ -1,2 +1,3 @@
obj-y += mm.o
+obj-y += p2m.o
obj-y += setup.init.o
new file mode 100644
@@ -0,0 +1,36 @@
+
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/domain.h>
+#include <asm/p2m.h>
+
+/* Not used on MPU system */
+int p2m_teardown(struct domain *d)
+{
+ return 0;
+}
+
+/* Not used on MPU system */
+int p2m_teardown_allocation(struct domain *d)
+{
+ return 0;
+}
+
+int arch_get_paging_mempool_size(struct domain *d, uint64_t *size)
+{
+ return -EOPNOTSUPP;
+}
+
+int arch_set_paging_mempool_size(struct domain *d, uint64_t size)
+{
+ return -EOPNOTSUPP;
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */