target-ppc: Initialize OpenPIC properly
authorAlexander Graf <agraf@suse.de>
Fri, 18 Dec 2009 22:37:26 +0000 (23:37 +0100)
committerAurelien Jarno <aurelien@aurel32.net>
Sat, 19 Dec 2009 15:04:52 +0000 (16:04 +0100)
When lowering an IRQ line, we search for the line we're supposed to lower.

Usually we run into an optimization there that queues up interrupts. This
queue ends with -1. Unfortunately we didn't set the first item to -1.

This patch fixes this, making interrupts work on PPC64.

Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
hw/openpic.c

index 42db59d..1e4b3c1 100644 (file)
@@ -442,7 +442,9 @@ static void openpic_reset (void *opaque)
        opp->dst[i].pctp      = 0x0000000F;
        opp->dst[i].pcsr      = 0x00000000;
        memset(&opp->dst[i].raised, 0, sizeof(IRQ_queue_t));
+        opp->dst[i].raised.next = -1;
        memset(&opp->dst[i].servicing, 0, sizeof(IRQ_queue_t));
+        opp->dst[i].servicing.next = -1;
     }
     /* Initialise timers */
     for (i = 0; i < MAX_TMR; i++) {