arch/arm64/kvm/vgic/vgic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
The function vgic_flush_lr_state() was calling _raw_spin_unlock()
instead of the proper raw_spin_unlock().
_raw_spin_unlock() is an internal low-level API and should not
be used directly; using raw_spin_unlock() ensures proper locking
semantics in the vgic code.
This change replaces low-level API usage with the general kernel
spinlock API, avoiding misuse of internal functions and aligning
with kernel locking conventions.
Fixes: 8fa3adb8c6be ("KVM: arm/arm64: vgic: Make vgic_irq->irq_lock a raw_spinlock")
Signed-off-by: Alok Tiwari <alok.a.tiwari@oracle.com>
---
arch/arm64/kvm/vgic/vgic.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/kvm/vgic/vgic.c b/arch/arm64/kvm/vgic/vgic.c
index f5148b38120a..c74d6120a12c 100644
--- a/arch/arm64/kvm/vgic/vgic.c
+++ b/arch/arm64/kvm/vgic/vgic.c
@@ -818,7 +818,7 @@ static void vgic_flush_lr_state(struct kvm_vcpu *vcpu)
* the AP list has been sorted already.
*/
if (multi_sgi && irq->priority > prio) {
- _raw_spin_unlock(&irq->irq_lock);
+ raw_spin_unlock(&irq->irq_lock);
break;
}
--
2.50.1
[removing @arm.com addresses that haven't been in use for a very long time] On Sun, 07 Sep 2025 21:14:13 +0100, Alok Tiwari <alok.a.tiwari@oracle.com> wrote: > > The function vgic_flush_lr_state() was calling _raw_spin_unlock() s/was/is/ > instead of the proper raw_spin_unlock(). > > _raw_spin_unlock() is an internal low-level API and should not > be used directly; using raw_spin_unlock() ensures proper locking > semantics in the vgic code. > > This change replaces low-level API usage with the general kernel > spinlock API, avoiding misuse of internal functions and aligning > with kernel locking conventions. This paragraph doesn't add much, please drop it. > > Fixes: 8fa3adb8c6be ("KVM: arm/arm64: vgic: Make vgic_irq->irq_lock a raw_spinlock") > Signed-off-by: Alok Tiwari <alok.a.tiwari@oracle.com> > --- > arch/arm64/kvm/vgic/vgic.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/arm64/kvm/vgic/vgic.c b/arch/arm64/kvm/vgic/vgic.c > index f5148b38120a..c74d6120a12c 100644 > --- a/arch/arm64/kvm/vgic/vgic.c > +++ b/arch/arm64/kvm/vgic/vgic.c > @@ -818,7 +818,7 @@ static void vgic_flush_lr_state(struct kvm_vcpu *vcpu) > * the AP list has been sorted already. > */ > if (multi_sgi && irq->priority > prio) { > - _raw_spin_unlock(&irq->irq_lock); > + raw_spin_unlock(&irq->irq_lock); > break; > } > With the above fixed: Acked-by: Marc Zyngier <maz@kernel.org> M. -- Without deviation from the norm, progress is not possible.
On 9/8/2025 1:46 PM, Marc Zyngier wrote: >> diff --git a/arch/arm64/kvm/vgic/vgic.c b/arch/arm64/kvm/vgic/vgic.c >> index f5148b38120a..c74d6120a12c 100644 >> --- a/arch/arm64/kvm/vgic/vgic.c >> +++ b/arch/arm64/kvm/vgic/vgic.c >> @@ -818,7 +818,7 @@ static void vgic_flush_lr_state(struct kvm_vcpu *vcpu) >> * the AP list has been sorted already. >> */ >> if (multi_sgi && irq->priority > prio) { >> - _raw_spin_unlock(&irq->irq_lock); >> + raw_spin_unlock(&irq->irq_lock); >> break; >> } >> > With the above fixed: > > Acked-by: Marc Zyngier<maz@kernel.org> Thanks Marc, I will send v2 with your suggestions. Thanks, Alok
© 2016 - 2025 Red Hat, Inc.