KVM: nVMX: Make setup/unsetup under the same conditions
authorPeng Hao <flyingpeng@tencent.com>
Tue, 22 Feb 2022 10:40:54 +0000 (18:40 +0800)
committerPaolo Bonzini <pbonzini@redhat.com>
Fri, 25 Feb 2022 13:20:13 +0000 (08:20 -0500)
Make sure nested_vmx_hardware_setup/unsetup() are called in pairs under
the same conditions.  Calling nested_vmx_hardware_unsetup() when nested
is false "works" right now because it only calls free_page() on zero-
initialized pointers, but it's possible that more code will be added to
nested_vmx_hardware_unsetup() in the future.

Reviewed-by: Sean Christopherson <seanjc@google.com>
Signed-off-by: Peng Hao <flyingpeng@tencent.com>
Message-Id: <20220222104054.70286-1-flyingpeng@tencent.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/vmx/vmx.c

index d854714..e1b3743 100644 (file)
@@ -8049,7 +8049,7 @@ static __init int hardware_setup(void)
        vmx_set_cpu_caps();
 
        r = alloc_kvm_area();
-       if (r)
+       if (r && nested)
                nested_vmx_hardware_unsetup();
 
        kvm_set_posted_intr_wakeup_handler(pi_wakeup_handler);