Re: [PATCH v6 16/31] KVM: nSVM: Unify handling of VMRUN failures with proper cleanup
From: Sean Christopherson
Date: Mon Mar 02 2026 - 11:17:54 EST
On Mon, Mar 02, 2026, Yosry Ahmed wrote:
> > > As for refactoring the code, I didn't really do it for SMM, but I
> > > think the code is generally cleaner with the single VMRUN failure
> > > path.
> >
> > Except for the minor detail of being wrong :-)
>
> I guess we're nitpicking now :P
>
> > My preference is to completely drop these:
> >
> > KVM: nSVM: Unify handling of VMRUN failures with proper cleanup
> > KVM: nSVM: Refactor minimal #VMEXIT handling out of nested_svm_vmexit()
> > KVM: nSVM: Call nested_svm_init_mmu_context() before switching to VMCB02
> > KVM: nSVM: Call nested_svm_merge_msrpm() from enter_svm_guest_mode()
> > KVM: nSVM: Call enter_guest_mode() before switching to VMCB02
> >
> > > I am fine with dropping the stable@ tag from everything from this
> > > point onward, or re-ordering the patches to keep it for the missing
> > > consistency checks.
> >
> > And then moving these to the end of the series (or at least, beyond the stable@
> > patches):
> >
> > KVM: nSVM: Make nested_svm_merge_msrpm() return an errno
>
> I don't think there's much value in keeping this now, it was mainly needed for:
>
> > KVM: nSVM: Call nested_svm_merge_msrpm() from enter_svm_guest_mode()
>
> But I can keep it if you like it on its own.
Hmm. I don't have a strong preference. Let's skip it for now. As much as I
dislike boolean returns, 0/-errno isn't obviously better in this case, and we
can always change it later.
> > KVM: nSVM: Drop nested_vmcb_check_{save/control}() wrappers
>
> This one will still be needed ahead of the consistency checks, specifically:
>
> > KVM: nSVM: Add missing consistency check for hCR0.PG and NP_ENABLE
>
> As we pass in L1's CR0, and with the wrappers in place it isn't
> obviously correct that the current CR0 is L1's.
Oh, gotcha. I'm a-ok keeping that one in the stable@ path, it's not at all
scary.