On Tue, Jan 17, 2023, Huang, Kai wrote: > On Thu, 2023-01-12 at 08:32 -0800, isaku.yamahata@xxxxxxxxx wrote: > > --- a/arch/x86/kvm/mmu/mmu.c > > +++ b/arch/x86/kvm/mmu/mmu.c > > @@ -244,7 +244,7 @@ static void kvm_flush_remote_tlbs_with_range(struct kvm *kvm, > > { > > int ret = -ENOTSUPP; > > > > - if (range && kvm_x86_ops.tlb_remote_flush_with_range) > > + if (range && kvm_available_flush_tlb_with_range()) > > ret = static_call(kvm_x86_tlb_remote_flush_with_range)(kvm, range); > > Again, IMHO this code change doesn't make code any clearer. With the new code, > I need to go into the kvm_available_flush_tlb_with_range() to see what's going > on, but with the old code I don't. Agreed. Though I think this patch as a whole can be replaced with a more straightforward solution. hv_remote_flush_tlb() is used when KVM is running as a Hyper-V guest, whereas TDX requires running KVM on bare metal. KVM should simply disallow TDX when a hypervisor is detected, then there's no need for vmx_tlb_remote_flush_with_range().