]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blame - releases/4.19.14/kvm-arm-arm64-vgic-cap-spis-to-the-vm-defined-maximum.patch
Linux 4.14.114
[thirdparty/kernel/stable-queue.git] / releases / 4.19.14 / kvm-arm-arm64-vgic-cap-spis-to-the-vm-defined-maximum.patch
CommitLineData
44967d01
GKH
1From bea2ef803ade3359026d5d357348842bca9edcf1 Mon Sep 17 00:00:00 2001
2From: Marc Zyngier <marc.zyngier@arm.com>
3Date: Tue, 4 Dec 2018 17:11:19 +0000
4Subject: KVM: arm/arm64: vgic: Cap SPIs to the VM-defined maximum
5
6From: Marc Zyngier <marc.zyngier@arm.com>
7
8commit bea2ef803ade3359026d5d357348842bca9edcf1 upstream.
9
10SPIs should be checked against the VMs specific configuration, and
11not the architectural maximum.
12
13Cc: stable@vger.kernel.org
14Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
15Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
16
17---
18 virt/kvm/arm/vgic/vgic.c | 4 ++--
19 1 file changed, 2 insertions(+), 2 deletions(-)
20
21--- a/virt/kvm/arm/vgic/vgic.c
22+++ b/virt/kvm/arm/vgic/vgic.c
23@@ -108,8 +108,8 @@ struct vgic_irq *vgic_get_irq(struct kvm
24 }
25
26 /* SPIs */
27- if (intid <= VGIC_MAX_SPI) {
28- intid = array_index_nospec(intid, VGIC_MAX_SPI);
29+ if (intid < (kvm->arch.vgic.nr_spis + VGIC_NR_PRIVATE_IRQS)) {
30+ intid = array_index_nospec(intid, kvm->arch.vgic.nr_spis + VGIC_NR_PRIVATE_IRQS);
31 return &kvm->arch.vgic.spis[intid - VGIC_NR_PRIVATE_IRQS];
32 }
33