KVM: arm64: vgic: Ensure the irq refcount is nonzero when taking a ref
authorOliver Upton <oliver.upton@linux.dev>
Wed, 21 Feb 2024 05:42:52 +0000 (05:42 +0000)
committerOliver Upton <oliver.upton@linux.dev>
Fri, 23 Feb 2024 21:46:02 +0000 (21:46 +0000)
commit50ac89bb709275731217f74da8ccef8c99def319
treee05f78354f8d5b32edf7f6fe364503eaf78c2209
parent864d4304ec1e67b8235e2aae5d31bdad6dd8aa7c
KVM: arm64: vgic: Ensure the irq refcount is nonzero when taking a ref

It will soon be possible for get() and put() calls to happen in
parallel, which means in most cases we must ensure the refcount is
nonzero when taking a new reference. Switch to using
vgic_try_get_irq_kref() where necessary, and document the few conditions
where an IRQ's refcount is guaranteed to be nonzero.

Reviewed-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20240221054253.3848076-10-oliver.upton@linux.dev
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
arch/arm64/kvm/vgic/vgic-its.c
arch/arm64/kvm/vgic/vgic.c