Message ID | 20240813051256.2246612-3-binbin.wu@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | KVM: x86: Check hypercall's exit to userspace generically | expand |
On Tue, Aug 13, 2024 at 01:12:56PM +0800, Binbin Wu <binbin.wu@linux.intel.com> wrote: > Use is_kvm_hc_exit_enabled() instead of opencode. > > No functional change intended. > > Signed-off-by: Binbin Wu <binbin.wu@linux.intel.com> > --- > arch/x86/kvm/svm/sev.c | 4 ++-- > arch/x86/kvm/x86.c | 2 +- > 2 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/arch/x86/kvm/svm/sev.c b/arch/x86/kvm/svm/sev.c > index a16c873b3232..d622aab8351d 100644 > --- a/arch/x86/kvm/svm/sev.c > +++ b/arch/x86/kvm/svm/sev.c > @@ -3635,7 +3635,7 @@ static int snp_begin_psc_msr(struct vcpu_svm *svm, u64 ghcb_msr) > return 1; /* resume guest */ > } > > - if (!(vcpu->kvm->arch.hypercall_exit_enabled & (1 << KVM_HC_MAP_GPA_RANGE))) { > + if (!is_kvm_hc_exit_enabled(vcpu->kvm, KVM_HC_MAP_GPA_RANGE)) { > set_ghcb_msr(svm, GHCB_MSR_PSC_RESP_ERROR); > return 1; /* resume guest */ > } > @@ -3718,7 +3718,7 @@ static int snp_begin_psc(struct vcpu_svm *svm, struct psc_buffer *psc) > bool huge; > u64 gfn; > > - if (!(vcpu->kvm->arch.hypercall_exit_enabled & (1 << KVM_HC_MAP_GPA_RANGE))) { > + if (!is_kvm_hc_exit_enabled(vcpu->kvm, KVM_HC_MAP_GPA_RANGE)) { > snp_complete_psc(svm, VMGEXIT_PSC_ERROR_GENERIC); > return 1; > } > diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c > index 6e16c9751af7..9857c1984ef7 100644 > --- a/arch/x86/kvm/x86.c > +++ b/arch/x86/kvm/x86.c > @@ -10171,7 +10171,7 @@ unsigned long __kvm_emulate_hypercall(struct kvm_vcpu *vcpu, unsigned long nr, > u64 gpa = a0, npages = a1, attrs = a2; > > ret = -KVM_ENOSYS; > - if (!(vcpu->kvm->arch.hypercall_exit_enabled & (1 << KVM_HC_MAP_GPA_RANGE))) > + if (!is_kvm_hc_exit_enabled(vcpu->kvm, KVM_HC_MAP_GPA_RANGE)) > break; > > if (!PAGE_ALIGNED(gpa) || !npages || > -- > 2.43.2 > > Reviewed-by: Isaku Yamahata <isaku.yamahata@intel.com>
On 13/08/2024 5:12 pm, Binbin Wu wrote: > Use is_kvm_hc_exit_enabled() instead of opencode. > > No functional change intended. It would be helpful to mention currently hypercall_exit_enabled can only have KVM_HC_MAP_GPA_RANGE bit set (so that there will be no functional change). > > Signed-off-by: Binbin Wu <binbin.wu@linux.intel.com> Reviewed-by: Kai Huang <kai.huang@intel.com>
On 8/14/2024 7:18 AM, Huang, Kai wrote: > > > On 13/08/2024 5:12 pm, Binbin Wu wrote: >> Use is_kvm_hc_exit_enabled() instead of opencode. >> >> No functional change intended. > > It would be helpful to mention currently hypercall_exit_enabled can > only have KVM_HC_MAP_GPA_RANGE bit set (so that there will be no > functional change). I think it's not needed, because is_kvm_hc_exit_enabled() takes the input. It just replaces the opencode with a helper API. Maybe your comment was for the patch 1? > >> >> Signed-off-by: Binbin Wu <binbin.wu@linux.intel.com> > > Reviewed-by: Kai Huang <kai.huang@intel.com> > Thanks for your review.
On 19/08/2024 10:07 pm, Binbin Wu wrote: > > > > On 8/14/2024 7:18 AM, Huang, Kai wrote: >> >> >> On 13/08/2024 5:12 pm, Binbin Wu wrote: >>> Use is_kvm_hc_exit_enabled() instead of opencode. >>> >>> No functional change intended. >> >> It would be helpful to mention currently hypercall_exit_enabled can >> only have KVM_HC_MAP_GPA_RANGE bit set (so that there will be no >> functional change). > I think it's not needed, because is_kvm_hc_exit_enabled() takes the input. > It just replaces the opencode with a helper API. > > Maybe your comment was for the patch 1? > OK. I guess my brain wasn't very clear, feel free to ignore :-)
diff --git a/arch/x86/kvm/svm/sev.c b/arch/x86/kvm/svm/sev.c index a16c873b3232..d622aab8351d 100644 --- a/arch/x86/kvm/svm/sev.c +++ b/arch/x86/kvm/svm/sev.c @@ -3635,7 +3635,7 @@ static int snp_begin_psc_msr(struct vcpu_svm *svm, u64 ghcb_msr) return 1; /* resume guest */ } - if (!(vcpu->kvm->arch.hypercall_exit_enabled & (1 << KVM_HC_MAP_GPA_RANGE))) { + if (!is_kvm_hc_exit_enabled(vcpu->kvm, KVM_HC_MAP_GPA_RANGE)) { set_ghcb_msr(svm, GHCB_MSR_PSC_RESP_ERROR); return 1; /* resume guest */ } @@ -3718,7 +3718,7 @@ static int snp_begin_psc(struct vcpu_svm *svm, struct psc_buffer *psc) bool huge; u64 gfn; - if (!(vcpu->kvm->arch.hypercall_exit_enabled & (1 << KVM_HC_MAP_GPA_RANGE))) { + if (!is_kvm_hc_exit_enabled(vcpu->kvm, KVM_HC_MAP_GPA_RANGE)) { snp_complete_psc(svm, VMGEXIT_PSC_ERROR_GENERIC); return 1; } diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index 6e16c9751af7..9857c1984ef7 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -10171,7 +10171,7 @@ unsigned long __kvm_emulate_hypercall(struct kvm_vcpu *vcpu, unsigned long nr, u64 gpa = a0, npages = a1, attrs = a2; ret = -KVM_ENOSYS; - if (!(vcpu->kvm->arch.hypercall_exit_enabled & (1 << KVM_HC_MAP_GPA_RANGE))) + if (!is_kvm_hc_exit_enabled(vcpu->kvm, KVM_HC_MAP_GPA_RANGE)) break; if (!PAGE_ALIGNED(gpa) || !npages ||
Use is_kvm_hc_exit_enabled() instead of opencode. No functional change intended. Signed-off-by: Binbin Wu <binbin.wu@linux.intel.com> --- arch/x86/kvm/svm/sev.c | 4 ++-- arch/x86/kvm/x86.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-)