On Mon, 2025-02-03 at 22:33 +0530, Naveen N Rao (AMD) wrote: > apicv_update_lock is not required when querying the state of guest > debug in all the vcpus. Remove usage of the same, and switch to > kvm_set_or_clear_apicv_inhibit() helper to simplify the code. It might be worth to mention that the reason why the lock is not needed, is because kvm_vcpu_ioctl from which this function is called takes 'vcpu->mutex' and thus concurrent execution of this function is not really possible. Besides this: Reviewed-by: Maxim Levitsky <mlevitsk@xxxxxxxxxx> Best regards, Maxim Levitsky > > Signed-off-by: Naveen N Rao (AMD) <naveen@xxxxxxxxxx> > --- > arch/x86/kvm/x86.c | 9 ++------- > 1 file changed, 2 insertions(+), 7 deletions(-) > > diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c > index b2d9a16fd4d3..11235e91ae90 100644 > --- a/arch/x86/kvm/x86.c > +++ b/arch/x86/kvm/x86.c > @@ -12038,19 +12038,14 @@ static void kvm_arch_vcpu_guestdbg_update_apicv_inhibit(struct kvm *kvm) > struct kvm_vcpu *vcpu; > unsigned long i; > > - if (!enable_apicv) > - return; > - > - down_write(&kvm->arch.apicv_update_lock); > - > kvm_for_each_vcpu(i, vcpu, kvm) { > if (vcpu->guest_debug & KVM_GUESTDBG_BLOCKIRQ) { > set = true; > break; > } > } > - __kvm_set_or_clear_apicv_inhibit(kvm, APICV_INHIBIT_REASON_BLOCKIRQ, set); > - up_write(&kvm->arch.apicv_update_lock); > + > + kvm_set_or_clear_apicv_inhibit(kvm, APICV_INHIBIT_REASON_BLOCKIRQ, set); > } > > int kvm_arch_vcpu_ioctl_set_guest_debug(struct kvm_vcpu *vcpu,