Commit 6c8512a5 authored by Hou Wenlong's avatar Hou Wenlong Committed by Sean Christopherson
Browse files

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: default avatarHou Wenlong <houwenlong.hwl@antgroup.com>
Fixes: ec5a4919 ("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: default avatarSean Christopherson <seanjc@google.com>
parent ff8071eb
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -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;
}