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 <[email protected]> --- CC: Jan Beulich <[email protected]> CC: Wei Liu <[email protected]> CC: Roger Pau Monné <[email protected]> CC: Paul Durrant <[email protected]> CC: Juergen Gross <[email protected]> This is a regression from 4.12, so should be fixed before 4.13 ships. --- xen/arch/x86/hvm/hvm.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) 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 { -- 2.11.0 _______________________________________________ Xen-devel mailing list [email protected] https://lists.xenproject.org/mailman/listinfo/xen-devel
