FAILED: patch "[PATCH] KVM: arm/arm64: vgic: Avoid injecting reserved IRQ numbers" failed to apply to 4.0-stable tree
[email protected]
maintainerThe patch below does not apply to the 4.0-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
Quoted 1 line
From
4839ddc27b7212ec58874f62c97da7400c8523beMon Sep 17 00:00:00 2001
From: Marc Zyngier <[email protected]>
Date: Wed, 17 Jun 2015 14:43:35 +0100
Subject: [PATCH] KVM: arm/arm64: vgic: Avoid injecting reserved IRQ numbers
Commit fd1d0ddf2ae9 (KVM: arm/arm64: check IRQ number on userland injection) rightly limited the range of interrupts userspace can inject in a guest, but failed to consider the (unlikely) case where a guest is configured with 1024 interrupts.
In this case, interrupts ranging from 1020 to 1023 are unuseable, as they have a special meaning for the GIC CPU interface.
Make sure that these number cannot be used as an IRQ. Also delete a redundant (and similarily buggy) check in kvm_set_irq.
virt/kvm/arm/vgic.c +1 -4
@@ -1561,7 +1561,7 @@ int kvm_vgic_inject_irq(struct kvm *kvm, int cpuid, unsigned int irq_num, goto out; } -if (irq_num >= kvm->arch.vgic.nr_irqs) +if (irq_num >=min (kvm->arch.vgic.nr_irqs,1020 ))return -EINVAL ; vcpu_id =vgic_update_irq_pending (kvm, cpuid, irq_num, level);
@@ -2161,10 +2161,7 @@ int kvm_set_irq(struct kvm *kvm, int irq_source_id,BUG_ON (!vgic_initialized (kvm)); -if (spi > kvm->arch.vgic.nr_irqs) -return -EINVAL ;return kvm_vgic_inject_irq (kvm,0 , spi, level); - }/* MSI not implemented yet */