]> git.proxmox.com Git - mirror_qemu.git/commit
intc/arm_gic: Support IRQ injection for more than 256 vpus
authorEric Auger <eric.auger@redhat.com>
Thu, 3 Oct 2019 15:46:39 +0000 (17:46 +0200)
committerPeter Maydell <peter.maydell@linaro.org>
Tue, 15 Oct 2019 17:09:02 +0000 (18:09 +0100)
commitf6530926e2310147a7844a3e663230d47b3d7333
tree72d1cedab2f00fff2f123803499c2b72ede04745
parentf363d039e883ce6eb2a4fd09b04a38cbb6c95d43
intc/arm_gic: Support IRQ injection for more than 256 vpus

Host kernels that expose the KVM_CAP_ARM_IRQ_LINE_LAYOUT_2 capability
allow injection of interrupts along with vcpu ids larger than 255.
Let's encode the vpcu id on 12 bits according to the upgraded KVM_IRQ_LINE
ABI when needed.

Given that we have two callsites that need to assemble
the value for kvm_set_irq(), a new helper routine, kvm_arm_set_irq
is introduced.

Without that patch qemu exits with "kvm_set_irq: Invalid argument"
message.

Signed-off-by: Eric Auger <eric.auger@redhat.com>
Reported-by: Zenghui Yu <yuzenghui@huawei.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Andrew Jones <drjones@redhat.com>
Acked-by: Marc Zyngier <maz@kernel.org>
Message-id: 20191003154640.22451-3-eric.auger@redhat.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
hw/intc/arm_gic_kvm.c
target/arm/cpu.c
target/arm/kvm.c
target/arm/kvm_arm.h