[PATCH] qemu-kvm: Fix non-ISA IRQ routing in kernel irqchip mode

Jan Kiszka
2011-05-23T08:33:01Z

Merge regression of d1dcf63406: The KVM i8259 believes it is also an
IOAPIC and takes all GSIs. Until we refactor this, work around it by
avoiding the isa_irq_handler dispatcher in kernel irqchip mode.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
---
hw/pc_piix.c | 6 +++++-
1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/hw/pc_piix.c b/hw/pc_piix.c
index 66c5e04..7af03fa 100644
--- a/hw/pc_piix.c
+++ b/hw/pc_piix.c
@@ -131,7 +131,11 @@ static void pc_init1(ram_addr_t ram_size,
if (pci_enabled) {
ioapic_init(isa_irq_state);
}
- isa_irq = qemu_allocate_irqs(isa_irq_handler, isa_irq_state, 24);
+ if (!(kvm_enabled() && kvm_irqchip_in_kernel())) {
+ isa_irq = qemu_allocate_irqs(isa_irq_handler, isa_irq_state, 24);
+ } else {
+ isa_irq = i8259;
+ }

if (pci_enabled) {
if (!xen_enabled()) {
--
1.7.1