KVM: SVM: Check for an unexpected VM-Exit after RETPOLINE "fast" handling

Check for an unexpected/unhandled VM-Exit after the manual RETPOLINE=y
handling.  The entire point of the RETPOLINE checks is to optimize for
common VM-Exits, i.e. checking for the rare case of an unsupported
VM-Exit is counter-productive.  This also aligns SVM and VMX exit handling.

No functional change intended.

Reviewed-by: Yosry Ahmed <yosry.ahmed@linux.dev>
Link: https://patch.msgid.link/20251230211347.4099600-4-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
master
Sean Christopherson 2025-12-30 13:13:42 -08:00
parent 2450c97745
commit 194c17bf5e
1 changed files with 6 additions and 6 deletions

View File

@ -3469,12 +3469,6 @@ no_vmsa:
int svm_invoke_exit_handler(struct kvm_vcpu *vcpu, u64 exit_code)
{
if (exit_code >= ARRAY_SIZE(svm_exit_handlers))
goto unexpected_vmexit;
if (!svm_exit_handlers[exit_code])
goto unexpected_vmexit;
#ifdef CONFIG_MITIGATION_RETPOLINE
if (exit_code == SVM_EXIT_MSR)
return msr_interception(vcpu);
@ -3491,6 +3485,12 @@ int svm_invoke_exit_handler(struct kvm_vcpu *vcpu, u64 exit_code)
return sev_handle_vmgexit(vcpu);
#endif
#endif
if (exit_code >= ARRAY_SIZE(svm_exit_handlers))
goto unexpected_vmexit;
if (!svm_exit_handlers[exit_code])
goto unexpected_vmexit;
return svm_exit_handlers[exit_code](vcpu);
unexpected_vmexit: