KVM: VMX: Don't register posted interrupt wakeup handler if alloc_kvm_area() fails

Unregistering the posted interrupt wakeup handler only happens during
hardware unsetup. Therefore, if alloc_kvm_area() fails and continue to
register the posted interrupt wakeup handler, this will leave the global
posted interrupt wakeup handler pointer in an incorrect state. Although
it should not be an issue, it's still better to change it.

Signed-off-by: Hou Wenlong <houwenlong.hwl@antgroup.com>
Fixes: ec5a4919fa ("KVM: VMX: Unregister posted interrupt wakeup handler on hardware unsetup")
Link: https://patch.msgid.link/0ac6908b608cf80eab7437004334fedd0f5f5317.1768304590.git.houwenlong.hwl@antgroup.com
[sean: use a goto]
Signed-off-by: Sean Christopherson <seanjc@google.com>
master
Hou Wenlong 2026-01-13 19:56:50 +08:00 committed by Sean Christopherson
parent ff8071eb3a
commit 6c8512a5b7
1 changed files with 7 additions and 2 deletions

View File

@ -8708,8 +8708,8 @@ __init int vmx_hardware_setup(void)
}
r = alloc_kvm_area();
if (r && nested)
nested_vmx_hardware_unsetup();
if (r)
goto err_kvm_area;
kvm_set_posted_intr_wakeup_handler(pi_wakeup_handler);
@ -8736,6 +8736,11 @@ __init int vmx_hardware_setup(void)
kvm_caps.inapplicable_quirks &= ~KVM_X86_QUIRK_IGNORE_GUEST_PAT;
return 0;
err_kvm_area:
if (nested)
nested_vmx_hardware_unsetup();
return r;
}