Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

KVM: SVM: Open code handling of unexpected exits in svm_invoke_exit_handler()

Fold svm_check_exit_valid() and svm_handle_invalid_exit() into their sole
caller, svm_invoke_exit_handler(), as having tiny single-use helpers makes
the code unncessarily difficult to follow. This will also allow for
additional cleanups in svm_invoke_exit_handler().

No functional change intended.

Suggested-by: Yosry Ahmed <yosry.ahmed@linux.dev>
Reviewed-by: Yosry Ahmed <yosry.ahmed@linux.dev>
Reviewed-by: Pankaj Gupta <pankaj.gupta@amd.com>
Link: https://patch.msgid.link/20251230211347.4099600-3-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>

+10 -15
+10 -15
arch/x86/kvm/svm/svm.c
··· 3467 3467 sev_free_decrypted_vmsa(vcpu, save); 3468 3468 } 3469 3469 3470 - static bool svm_check_exit_valid(u64 exit_code) 3471 - { 3472 - return (exit_code < ARRAY_SIZE(svm_exit_handlers) && 3473 - svm_exit_handlers[exit_code]); 3474 - } 3475 - 3476 - static int svm_handle_invalid_exit(struct kvm_vcpu *vcpu, u64 exit_code) 3477 - { 3478 - dump_vmcb(vcpu); 3479 - kvm_prepare_unexpected_reason_exit(vcpu, exit_code); 3480 - return 0; 3481 - } 3482 - 3483 3470 int svm_invoke_exit_handler(struct kvm_vcpu *vcpu, u64 exit_code) 3484 3471 { 3485 - if (!svm_check_exit_valid(exit_code)) 3486 - return svm_handle_invalid_exit(vcpu, exit_code); 3472 + if (exit_code >= ARRAY_SIZE(svm_exit_handlers)) 3473 + goto unexpected_vmexit; 3474 + 3475 + if (!svm_exit_handlers[exit_code]) 3476 + goto unexpected_vmexit; 3487 3477 3488 3478 #ifdef CONFIG_MITIGATION_RETPOLINE 3489 3479 if (exit_code == SVM_EXIT_MSR) ··· 3492 3502 #endif 3493 3503 #endif 3494 3504 return svm_exit_handlers[exit_code](vcpu); 3505 + 3506 + unexpected_vmexit: 3507 + dump_vmcb(vcpu); 3508 + kvm_prepare_unexpected_reason_exit(vcpu, exit_code); 3509 + return 0; 3495 3510 } 3496 3511 3497 3512 static void svm_get_exit_info(struct kvm_vcpu *vcpu, u32 *reason,