From: Andrew Cooper Date: Wed, 9 Oct 2019 18:21:14 +0000 (+0100) Subject: x86/hvm: Fix the use of "hap=0" following c/s c0902a9a143a X-Git-Tag: archive/raspbian/4.14.0+80-gd101b417b7-1+rpi1^2~63^2~1305 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=4ca8eab5ce1893b3048b06921f12157d33ab60f7;p=xen.git x86/hvm: Fix the use of "hap=0" following c/s c0902a9a143a c/s c0902a9a143a refactored hvm_enable() a little, but dropped the logic which cleared hap_supported in the case that the user had asked for it off. This results in Xen booting up, claiming: (XEN) HVM: Hardware Assisted Paging (HAP) detected but disabled but with HAP advertised via sysctl, and XEN_DOMCTL_CDF_hap being accepted in domain_create(). Signed-off-by: Andrew Cooper Reviewed-by: Paul Durrant Acked-by: Jan Beulich Reviewed-by: Wei Liu Release-acked-by: Juergen Gross --- diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c index c22cb39cf3..9acd359c99 100644 --- a/xen/arch/x86/hvm/hvm.c +++ b/xen/arch/x86/hvm/hvm.c @@ -142,7 +142,7 @@ static struct notifier_block cpu_nfb = { .notifier_call = cpu_callback }; -static bool __init hap_supported(const struct hvm_function_table *fns) +static bool __init hap_supported(struct hvm_function_table *fns) { if ( !fns->hap_supported ) { @@ -152,6 +152,7 @@ static bool __init hap_supported(const struct hvm_function_table *fns) if ( !opt_hap_enabled ) { + fns->hap_supported = 0; printk("HVM: Hardware Assisted Paging (HAP) detected but disabled\n"); return false; } @@ -175,7 +176,7 @@ static int __init hvm_enable(void) hvm_enabled = 1; printk("HVM: %s enabled\n", fns->name); - if ( !hap_supported(fns) ) + if ( !hap_supported(&hvm_funcs) ) clear_iommu_hap_pt_share(); else {