target-arm: Fix soft interrupt in GIC distributor
authorAdam Lackorzynski <adam@os.inf.tu-dresden.de>
Sat, 5 Mar 2011 12:51:42 +0000 (13:51 +0100)
committerAurelien Jarno <aurelien@aurel32.net>
Sun, 6 Mar 2011 22:37:17 +0000 (23:37 +0100)
Fix selection of target list filter mode.

Signed-off-by: Adam Lackorzynski <adam@os.inf.tu-dresden.de>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
hw/arm_gic.c

index e6b1953..0e934ec 100644 (file)
@@ -549,10 +549,10 @@ static void gic_dist_writel(void *opaque, target_phys_addr_t offset,
             mask = (value >> 16) & ALL_CPU_MASK;
             break;
         case 1:
-            mask = 1 << cpu;
+            mask = ALL_CPU_MASK ^ (1 << cpu);
             break;
         case 2:
-            mask = ALL_CPU_MASK ^ (1 << cpu);
+            mask = 1 << cpu;
             break;
         default:
             DPRINTF("Bad Soft Int target filter\n");