pc: initialize ioapic before use.
authorIsaku Yamahata <yamahata@valinux.co.jp>
Fri, 14 May 2010 07:29:03 +0000 (16:29 +0900)
committerBlue Swirl <blauwirbel@gmail.com>
Sat, 15 May 2010 15:32:28 +0000 (15:32 +0000)
The changeset of 2c8d9340203c7f19265fd4cb2341f568217a3af6
prevents isa_irq_handler() from NULL refering of IsaIrqState::ioapic.
However it would be better to initialize the member before reference.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Acked-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
hw/pc.c

diff --git a/hw/pc.c b/hw/pc.c
index db2b9a25b8926bc3c78705dfb6dd69c92dbe6dc4..88427663138b2cc6044bd7d51593f62f60dba042 100644 (file)
--- a/hw/pc.c
+++ b/hw/pc.c
@@ -921,6 +921,9 @@ static void pc_init1(ram_addr_t ram_size,
     i8259 = i8259_init(cpu_irq[0]);
     isa_irq_state = qemu_mallocz(sizeof(*isa_irq_state));
     isa_irq_state->i8259 = i8259;
+    if (pci_enabled) {
+        isa_irq_state->ioapic = ioapic_init();
+    }
     isa_irq = qemu_allocate_irqs(isa_irq_handler, isa_irq_state, 24);
 
     if (pci_enabled) {
@@ -964,9 +967,6 @@ static void pc_init1(ram_addr_t ram_size,
     register_ioport_read(0x92, 1, 1, ioport92_read, NULL);
     register_ioport_write(0x92, 1, 1, ioport92_write, NULL);
 
-    if (pci_enabled) {
-        isa_irq_state->ioapic = ioapic_init();
-    }
     pit = pit_init(0x40, isa_reserve_irq(0));
     pcspk_init(pit);
     if (!no_hpet) {