From: Jan Beulich Date: Fri, 25 Sep 2015 07:02:02 +0000 (+0200) Subject: x86/bigmem: eliminate struct domain address width restriction X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~2501 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=fb34ff7452fda9966915cba8cf3ed42d4ca738fc;p=xen.git x86/bigmem: eliminate struct domain address width restriction PDX-es are 64 bits wide in that case, and hence no limit needs to be enforced. Reported-by: Andrew Cooper Signed-off-by: Jan Beulich Reviewed-by: Andrew Cooper --- diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c index 0b97912994..dc3bb08da3 100644 --- a/xen/arch/x86/domain.c +++ b/xen/arch/x86/domain.c @@ -203,6 +203,7 @@ smap_check_policy_t smap_policy_change(struct vcpu *v, return old_policy; } +#ifndef CONFIG_BIGMEM /* * The hole may be at or above the 44-bit boundary, so we need to determine * the total bit count until reaching 32 significant (not squashed out) bits @@ -224,10 +225,14 @@ static unsigned int __init noinline _domain_struct_bits(void) return bits; } +#endif struct domain *alloc_domain_struct(void) { struct domain *d; +#ifdef CONFIG_BIGMEM + const unsigned int bits = 0; +#else /* * We pack the PDX of the domain structure into a 32-bit field within * the page_info structure. Hence the MEMF_bits() restriction. @@ -236,6 +241,7 @@ struct domain *alloc_domain_struct(void) if ( unlikely(!bits) ) bits = _domain_struct_bits(); +#endif BUILD_BUG_ON(sizeof(*d) > PAGE_SIZE); d = alloc_xenheap_pages(0, MEMF_bits(bits));