From 173c7803592065d27bf2e60d50e08e197a0efa83 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Roger=20Pau=20Monn=C3=A9?= Date: Tue, 24 Jul 2018 15:55:39 +0200 Subject: [PATCH] x86/pvh: change the order of the iommu initialization for Dom0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The iommu initialization will also create MMIO mappings in the Dom0 p2m, so the paging memory pool needs to be allocated or else iommu initialization will fail. Move the call to init the iommu after the Dom0 p2m has been setup in order to solve this. Note that issues caused by this wrong ordering have only been seen when using shadow paging. Signed-off-by: Roger Pau Monné Acked-by: Jan Beulich --- xen/arch/x86/hvm/dom0_build.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c index 9a833fa4b9..f0cd63b1ec 100644 --- a/xen/arch/x86/hvm/dom0_build.c +++ b/xen/arch/x86/hvm/dom0_build.c @@ -1093,8 +1093,6 @@ int __init dom0_construct_pvh(struct domain *d, const module_t *image, printk(XENLOG_INFO "*** Building a PVH Dom%d ***\n", d->domain_id); - iommu_hwdom_init(d); - rc = pvh_setup_p2m(d); if ( rc ) { @@ -1102,6 +1100,8 @@ int __init dom0_construct_pvh(struct domain *d, const module_t *image, return rc; } + iommu_hwdom_init(d); + rc = pvh_load_kernel(d, image, image_headroom, initrd, bootstrap_map(image), cmdline, &entry, &start_info); if ( rc ) -- 2.30.2