From: Alexander Graf Date: Sat, 23 Jul 2011 09:05:35 +0000 (+0200) Subject: PPC: Set MPIC IDE for IPI to 0 X-Git-Tag: v1.0-rc0~135^2~6^2~56 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9250fd24a98af75f196480a75aacf99291ef46a9;p=thirdparty%2Fqemu.git PPC: Set MPIC IDE for IPI to 0 We use the IDE register with IPIs as a mask to keep track which processors have already acknowledged the respective interrupt. So we need to initialize it to 0 to make sure that it doesn't accidently fire an IPI on CPU0 when the first IPI is triggered. Reported-by: Elie Richa Signed-off-by: Alexander Graf --- v2 -> v3: - fix IDE IPI reset --- diff --git a/hw/openpic.c b/hw/openpic.c index 9710ac0b30c..31ad1751fed 100644 --- a/hw/openpic.c +++ b/hw/openpic.c @@ -1299,6 +1299,10 @@ static void mpic_reset (void *opaque) mpp->src[i].ipvp = 0x80800000; mpp->src[i].ide = 0x00000001; } + /* Set IDE for IPIs to 0 so we don't get spurious interrupts */ + for (i = mpp->irq_ipi0; i < (mpp->irq_ipi0 + MAX_IPI); i++) { + mpp->src[i].ide = 0; + } /* Initialise IRQ destinations */ for (i = 0; i < MAX_CPU; i++) { mpp->dst[i].pctp = 0x0000000F;