ARM: Fix mp interrupt bug in GIC.
authorDaniel Johnson <daniel.johnson@arm.com>
Sun, 10 Jul 2011 17:56:08 +0000 (12:56 -0500)
committerDaniel Johnson <daniel.johnson@arm.com>
Sun, 10 Jul 2011 17:56:08 +0000 (12:56 -0500)
Missing "!" made multiprocessor interrupts operate incorrectly.

src/dev/arm/gic.cc

index d8feec49aed53af00cde5f9c60d845aa530dc614..df4edde91158f99521d0bd79c6280d171ac0a02c 100644 (file)
@@ -564,7 +564,7 @@ Gic::updateIntState(int hint)
                      */
                     if ((bits(intEnabled[x], y) & bits(pendingInt[x], y)) &&
                         (intPriority[int_nm] < highest_pri))
-                        if (mp_sys || (cpuTarget[int_nm] & (1 << cpu))) {
+                        if ( (!mp_sys) || (cpuTarget[int_nm] & (1 << cpu))) {
                             highest_pri = intPriority[int_nm];
                             highest_int = int_nm;
                         }