On Tue Apr 23, 2024 at 7:21 PM EEST, Michael Roth wrote: > Ensure an error is returned if a non-SNP guest attempts to issue an > Extended Guest Request. Also add input validation for RAX/RBX. > > Signed-off-by: Michael Roth <michael.roth@xxxxxxx> > --- > arch/x86/kvm/svm/sev.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/arch/x86/kvm/svm/sev.c b/arch/x86/kvm/svm/sev.c > index 2b30b3b0eec8..ff64ed8df301 100644 > --- a/arch/x86/kvm/svm/sev.c > +++ b/arch/x86/kvm/svm/sev.c > @@ -3297,6 +3297,11 @@ static int sev_es_validate_vmgexit(struct vcpu_svm *svm) > goto vmgexit_err; > break; > case SVM_VMGEXIT_EXT_GUEST_REQUEST: > + if (!sev_snp_guest(vcpu->kvm)) > + goto vmgexit_err; > + if (!kvm_ghcb_rax_is_valid(svm) || > + !kvm_ghcb_rbx_is_valid(svm)) > + goto vmgexit_err; Hmm... maybe I'm ignoring something but why this is not just: if (!sev_snp_guest(vcpu->kvm) || !kvm_ghcb_rax_is_valid(svm) || !kvm_ghcb_rbx_is_valid(svm))) since they branch to the same location. BR, Jarkko