On Fri, Oct 21, 2022, Vitaly Kuznetsov wrote: > To handle L2 TLB flush requests, KVM needs to translate the specified > L2 GPA to L1 GPA to read hypercall arguments from there. > > No functional change as KVM doesn't handle VMCALL/VMMCALL from L2 yet. > > Reviewed-by: Maxim Levitsky <mlevitsk@xxxxxxxxxx> > Signed-off-by: Vitaly Kuznetsov <vkuznets@xxxxxxxxxx> > --- > arch/x86/kvm/hyperv.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/arch/x86/kvm/hyperv.c b/arch/x86/kvm/hyperv.c > index fca9c51891f5..df1efb821eb0 100644 > --- a/arch/x86/kvm/hyperv.c > +++ b/arch/x86/kvm/hyperv.c > @@ -23,6 +23,7 @@ > #include "ioapic.h" > #include "cpuid.h" > #include "hyperv.h" > +#include "mmu.h" > #include "xen.h" > > #include <linux/cpu.h> > @@ -1908,6 +1909,12 @@ static u64 kvm_hv_flush_tlb(struct kvm_vcpu *vcpu, struct kvm_hv_hcall *hc) > */ > BUILD_BUG_ON(KVM_HV_MAX_SPARSE_VCPU_SET_BITS > 64); > > + if (!hc->fast && is_guest_mode(vcpu)) { Please add a comment explaining why only "slow" hypercalls need to translate the GPA from L2=>L1. With a comment (and assuming this isn't a bug), Reviewed-by: Sean Christopherson <seanjc@xxxxxxxxxx>