|
@@ -108,8 +108,8 @@ struct vgic_irq *vgic_get_irq(struct kvm *kvm, struct kvm_vcpu *vcpu,
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/* SPIs */
|
|
/* SPIs */
|
|
|
- if (intid <= VGIC_MAX_SPI) {
|
|
|
|
|
- intid = array_index_nospec(intid, VGIC_MAX_SPI);
|
|
|
|
|
|
|
+ if (intid < (kvm->arch.vgic.nr_spis + VGIC_NR_PRIVATE_IRQS)) {
|
|
|
|
|
+ intid = array_index_nospec(intid, kvm->arch.vgic.nr_spis + VGIC_NR_PRIVATE_IRQS);
|
|
|
return &kvm->arch.vgic.spis[intid - VGIC_NR_PRIVATE_IRQS];
|
|
return &kvm->arch.vgic.spis[intid - VGIC_NR_PRIVATE_IRQS];
|
|
|
}
|
|
}
|
|
|
|
|
|