[PATCH] KVM: arm64: vgic: Annotate struct vgic_dist with __counted_by_ptr

From: Bill Wendling

Date: Wed Mar 18 2026 - 21:56:31 EST


Add the __counted_by_ptr attribute to the spis pointer field in struct
vgic_dist. This pointer field points to an array of struct vgic_irq
elements, and the number of elements is tracked by the nr_spis field
within the same structure.

The nr_spis field is initialized in vgic_init() (or earlier via
userspace) before the spis array is allocated in kvm_vgic_dist_init().
The nr_spis value remains constant during the lifetime of the spis
allocation, making it a suitable counter for the array.

This patch was generated by CodeMender and reviewed by Bill Wendling.
Tested with the KVM selftests.

Signed-off-by: Bill Wendling <morbo@xxxxxxxxxx>
---
Cc: Marc Zyngier <maz@xxxxxxxxxx>
Cc: Oliver Upton <oupton@xxxxxxxxxx>
Cc: Joey Gouly <joey.gouly@xxxxxxx>
Cc: Suzuki K Poulose <suzuki.poulose@xxxxxxx>
Cc: Zenghui Yu <yuzenghui@xxxxxxxxxx>
Cc: Gogul Balakrishnan <bgogul@xxxxxxxxxx>
Cc: Arman Hasanzadeh <armanihm@xxxxxxxxxx>
Cc: Kees Cook <kees@xxxxxxxxxx>
Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
Cc: kvmarm@xxxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: codemender-patching+linux@xxxxxxxxxx
---
include/kvm/arm_vgic.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/kvm/arm_vgic.h b/include/kvm/arm_vgic.h
index f2eafc65bbf4..1cca87623d92 100644
--- a/include/kvm/arm_vgic.h
+++ b/include/kvm/arm_vgic.h
@@ -284,7 +284,7 @@ struct vgic_dist {
/* Wants SGIs without active state */
bool nassgireq;

- struct vgic_irq *spis;
+ struct vgic_irq *spis __counted_by_ptr(nr_spis);

struct vgic_io_device dist_iodev;
struct vgic_io_device cpuif_iodev;
--
2.53.0.851.ga537e3e6e9-goog