Fix -M isapc irq routing

Message ID
State Superseded
Headers show

Commit Message

Gerd Hoffmann Sept. 8, 2009, 3:31 p.m.
Only send irqs to ioapic in case we have one.
Fixes qemu segfault.

Linux kernel still needs explicit noapic noacpi on the kernel cmd line
to boot.  Do we need a different bios for isapc?  Or a fw_cfg knob to
turn off all the modern stuff (apic, acpi, smp, ...)?

Signed-off-by: Gerd Hoffmann <>
 hw/pc.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)


diff --git a/hw/pc.c b/hw/pc.c
index 6292001..9af0cdb 100644
--- a/hw/pc.c
+++ b/hw/pc.c
@@ -100,7 +100,8 @@  static void isa_irq_handler(void *opaque, int n, int level)
     if (n < 16) {
         qemu_set_irq(isa->i8259[n], level);
-    qemu_set_irq(isa->ioapic[n], level);
+    if (isa->ioapic)
+        qemu_set_irq(isa->ioapic[n], level);
 static void ioport80_write(void *opaque, uint32_t addr, uint32_t data)