]> xenbits.xensource.com Git - people/tklengyel/xen.git/commitdiff
VMX: correct error handling in vmx_create_vmcs()
authorJan Beulich <jbeulich@suse.com>
Wed, 12 Oct 2022 15:57:56 +0000 (17:57 +0200)
committerJan Beulich <jbeulich@suse.com>
Wed, 12 Oct 2022 15:57:56 +0000 (17:57 +0200)
With the addition of vmx_add_msr() calls to construct_vmcs() there are
now cases where simply freeing the VMCS isn't enough: The MSR bitmap
page as well as one of the MSR area ones (if it's the 2nd vmx_add_msr()
which fails) may also need freeing. Switch to using vmx_destroy_vmcs()
instead.

Fixes: 3bd36952dab6 ("x86/spec-ctrl: Introduce an option to control L1D_FLUSH for HVM HAP guests")
Fixes: 53a570b28569 ("x86/spec-ctrl: Support IBPB-on-entry")
Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
Release-acked-by: Henry Wang <Henry.Wang@arm.com>
xen/arch/x86/hvm/vmx/vmcs.c

index 4f12fa06ac3ece3369e2f209dfd54ad16efb374f..a1aca1ec046c5319aa9a7dd57568bb794db92496 100644 (file)
@@ -1821,7 +1821,7 @@ int vmx_create_vmcs(struct vcpu *v)
 
     if ( (rc = construct_vmcs(v)) != 0 )
     {
-        vmx_free_vmcs(vmx->vmcs_pa);
+        vmx_destroy_vmcs(v);
         return rc;
     }