hw/intc/arm_gicv3: Sanity-check num-cpu property
authorPeter Maydell <peter.maydell@linaro.org>
Fri, 8 Apr 2022 14:15:11 +0000 (15:15 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Fri, 22 Apr 2022 08:19:24 +0000 (09:19 +0100)
In the GICv3 code we implicitly rely on there being at least one CPU
and thus at least one redistributor and CPU interface.  Sanity-check
that the property the board code sets is not zero.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220408141550.1271295-3-peter.maydell@linaro.org

hw/intc/arm_gicv3_common.c

index 4ca5ae9bc5643f416fc7b1defd7eaf25de7a6f51..90204be25b627c7c73a3fd7cd9c1e203b564caee 100644 (file)
@@ -328,6 +328,10 @@ static void arm_gicv3_common_realize(DeviceState *dev, Error **errp)
                    s->num_irq, GIC_INTERNAL);
         return;
     }
+    if (s->num_cpu == 0) {
+        error_setg(errp, "num-cpu must be at least 1");
+        return;
+    }
 
     /* ITLinesNumber is represented as (N / 32) - 1, so this is an
      * implementation imposed restriction, not an architectural one,