On Wed, Aug 14, 2024 at 11:16:44AM +1200, "Huang, Kai" <kai.huang@xxxxxxxxx> wrote: > > --- > > arch/x86/kvm/x86.c | 4 ++-- > > arch/x86/kvm/x86.h | 7 +++++++ > > 2 files changed, 9 insertions(+), 2 deletions(-) > > > > diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c > > index af6c8cf6a37a..6e16c9751af7 100644 > > --- a/arch/x86/kvm/x86.c > > +++ b/arch/x86/kvm/x86.c > > @@ -10226,8 +10226,8 @@ int kvm_emulate_hypercall(struct kvm_vcpu *vcpu) > > cpl = kvm_x86_call(get_cpl)(vcpu); > > ret = __kvm_emulate_hypercall(vcpu, nr, a0, a1, a2, a3, op_64_bit, cpl); > > - if (nr == KVM_HC_MAP_GPA_RANGE && !ret) > > - /* MAP_GPA tosses the request to the user space. */ > > + if (!ret && is_kvm_hc_exit_enabled(vcpu->kvm, nr)) > > + /* The hypercall is requested to exit to userspace. */ > > return 0; > > I believe you put "!ret" check first for a reason? Perhaps you can add a > comment. I think he'd like to avoid to hit WARN_ON_ONCE(). -- Isaku Yamahata <isaku.yamahata@xxxxxxxxx>