Re: [PATCH v5 21/49] KVM: arm64: gic-v5: Initialise per-VM IRS state
[email protected] Fri, 07 Aug 2026 14:49:23 +0000
| Newsgroups | dev.linux.lists.kvmarm,org.kernel.vger.kvm |
|---|---|
| Message-ID | <[email protected]> |
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: - [Medium] Unprivileged userspace can flood the kernel log (dmesg) by repeatedly triggering a `pr_warn` in `kvm_vgic_v5_irs_init()`. -- --- Patch [21]: [PATCH v5 21/49] KVM: arm64: gic-v5: Initialise per-VM IRS state --- commit 1471593eea3e98c7d1747cf0894424955cddde44 Author: Sascha Bischoff <[email protected]> KVM: arm64: gic-v5: Initialise per-VM IRS state A virtual GICv5 needs an emulated IRS in addition to the host IRS state used to back VMTEs, VPEs, and ISTs. This patch allocates the per-VM emulated IRS state when creating a virtual GICv5, and initialises it from vgic_v5_init(). It also handles the teardown and cleanup of the IRS state during VGIC destruction. > diff --git a/arch/arm64/kvm/vgic/vgic-v5.c b/arch/arm64/kvm/vgic/vgic-v5.c > index 2932f3cfbe8f4..6a7dabf90dd1b 100644 > --- a/arch/arm64/kvm/vgic/vgic-v5.c > +++ b/arch/arm64/kvm/vgic/vgic-v5.c [ ... ] > @@ -751,6 +752,11 @@ int vgic_v5_init(struct kvm *kvm) > goto err; > } > > + /* Init IRS (and alloc SPI IST) */ > + ret = kvm_vgic_v5_irs_init(kvm, kvm->arch.vgic.nr_spis); [Severity: Medium] Does this new call path allow userspace to flood the kernel log? When userspace initializes a GICv5 via ioctl, this path calls kvm_vgic_v5_irs_init(). If the host IRS hardware supports fewer than 16 ID bits for ISTs, kvm_vgic_v5_irs_init() emits an unconditional warning: arch/arm64/kvm/vgic/vgic-irs-v5.c:kvm_vgic_v5_irs_init() { ... if (vgic_v5_irs_ist_id_bits(&irs_caps) < 16) pr_warn("Host IRS supports fewer than 16 ID bits for ISTs (%u)\n", vgic_v5_irs_ist_id_bits(&irs_caps)); ... } Since an unprivileged user can repeatedly create and destroy a VM in a tight loop, can this be used to spam dmesg and degrade system performance? Should this warning be converted to pr_warn_once() or be rate-limited? > + if (ret) > + goto err; > + > return 0; > > err: -- Sashiko AI review ยท https://sashiko.dev/#/patchset/[email protected]?part=21