On Wed, 2025-03-26 at 19:36 +0000, Yosry Ahmed wrote: > Instead of calling is_guest_mode() inside kvm_hv_vcpu_purge_flush_tlb() > pass the value from the caller. Future changes will pass different > values than is_guest_mode(vcpu). > > No functional change intended. > > Signed-off-by: Yosry Ahmed <yosry.ahmed@xxxxxxxxx> > --- > arch/x86/kvm/hyperv.h | 8 +++++--- > arch/x86/kvm/svm/svm.c | 2 +- > arch/x86/kvm/x86.c | 2 +- > 3 files changed, 7 insertions(+), 5 deletions(-) > > diff --git a/arch/x86/kvm/hyperv.h b/arch/x86/kvm/hyperv.h > index 913bfc96959cb..be715deaeb003 100644 > --- a/arch/x86/kvm/hyperv.h > +++ b/arch/x86/kvm/hyperv.h > @@ -203,14 +203,15 @@ static inline struct kvm_vcpu_hv_tlb_flush_fifo *kvm_hv_get_tlb_flush_fifo(struc > return &hv_vcpu->tlb_flush_fifo[i]; > } > > -static inline void kvm_hv_vcpu_purge_flush_tlb(struct kvm_vcpu *vcpu) > +static inline void kvm_hv_vcpu_purge_flush_tlb(struct kvm_vcpu *vcpu, > + bool is_guest_mode) > { > struct kvm_vcpu_hv_tlb_flush_fifo *tlb_flush_fifo; > > if (!to_hv_vcpu(vcpu) || !kvm_check_request(KVM_REQ_HV_TLB_FLUSH, vcpu)) > return; > > - tlb_flush_fifo = kvm_hv_get_tlb_flush_fifo(vcpu, is_guest_mode(vcpu)); > + tlb_flush_fifo = kvm_hv_get_tlb_flush_fifo(vcpu, is_guest_mode); > > kfifo_reset_out(&tlb_flush_fifo->entries); > } > @@ -285,7 +286,8 @@ static inline int kvm_hv_hypercall(struct kvm_vcpu *vcpu) > { > return HV_STATUS_ACCESS_DENIED; > } > -static inline void kvm_hv_vcpu_purge_flush_tlb(struct kvm_vcpu *vcpu) {} > +static inline void kvm_hv_vcpu_purge_flush_tlb(struct kvm_vcpu *vcpu, > + bool is_guest_mode) {} > static inline bool kvm_hv_synic_has_vector(struct kvm_vcpu *vcpu, int vector) > { > return false; > diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c > index e664d8428c792..865c5ce4fa473 100644 > --- a/arch/x86/kvm/svm/svm.c > +++ b/arch/x86/kvm/svm/svm.c > @@ -4025,7 +4025,7 @@ static void svm_flush_tlb_asid(struct kvm_vcpu *vcpu) > * A TLB flush for the current ASID flushes both "host" and "guest" TLB > * entries, and thus is a superset of Hyper-V's fine grained flushing. > */ > - kvm_hv_vcpu_purge_flush_tlb(vcpu); > + kvm_hv_vcpu_purge_flush_tlb(vcpu, is_guest_mode(vcpu)); > > /* > * Flush only the current ASID even if the TLB flush was invoked via > diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c > index 182f18ebc62f3..469a8e5526902 100644 > --- a/arch/x86/kvm/x86.c > +++ b/arch/x86/kvm/x86.c > @@ -3615,7 +3615,7 @@ static void kvm_vcpu_flush_tlb_guest(struct kvm_vcpu *vcpu) > * Flushing all "guest" TLB is always a superset of Hyper-V's fine > * grained flushing. > */ > - kvm_hv_vcpu_purge_flush_tlb(vcpu); > + kvm_hv_vcpu_purge_flush_tlb(vcpu, is_guest_mode(vcpu)); > } > > Reviewed-by: Maxim Levitsky <mlevitsk@xxxxxxxxxx> Best regards, Maxim Levitsky