[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v2 56/62] xen/pvshim: use default position for the m2p mappings
From: Roger Pau Monne <roger.pau@xxxxxxxxxx> When running a 32bit kernel as Dom0 on a 64bit hypervisor the hypervisor will try to shrink the hypervisor hole to the minimum needed, and thus requires the Dom0 to use XENMEM_machphys_mapping in order to fetch the position of the start of the hypervisor virtual mappings. Disable this feature when running as a PV shim, since some DomU kernels don't implemented XENMEM_machphys_mapping and break if the m2p doesn't begin at the default address. NB: support for the XENMEM_machphys_mapping was added in Linux by commit 7e7750. Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx> Acked-by: Jan Beulich <jbeulich@xxxxxxxx> --- xen/arch/x86/pv/dom0_build.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c index 52576795cc..e0b6b14e58 100644 --- a/xen/arch/x86/pv/dom0_build.c +++ b/xen/arch/x86/pv/dom0_build.c @@ -397,7 +397,8 @@ int __init dom0_construct_pv(struct domain *d, if ( parms.pae == XEN_PAE_EXTCR3 ) set_bit(VMASST_TYPE_pae_extended_cr3, &d->vm_assist); - if ( (parms.virt_hv_start_low != UNSET_ADDR) && elf_32bit(&elf) ) + if ( !pv_shim && (parms.virt_hv_start_low != UNSET_ADDR) && + elf_32bit(&elf) ) { unsigned long mask = (1UL << L2_PAGETABLE_SHIFT) - 1; value = (parms.virt_hv_start_low + mask) & ~mask; -- 2.11.0 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |