From: Tiago Muck Date: Thu, 16 May 2019 21:25:17 +0000 (-0500) Subject: dev-arm: Check for gem5 extensions in GicV2 X-Git-Tag: v19.0.0.0~426 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=1c047f8b92f5708bbef50d24cf47902d5da313e3;p=gem5.git dev-arm: Check for gem5 extensions in GicV2 Using GicV2 without setting the gem5_extensions parameter in a config with more than 8 is not allowed to prevent overflow of the 8-bit mask. Change-Id: I780c6985e8f44ed780b4f74f9a27805124e23a7b Signed-off-by: Tiago Mück Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/19288 Reviewed-by: Andreas Sandberg Maintainer: Andreas Sandberg Tested-by: kokoro --- diff --git a/src/dev/arm/gic_v2.hh b/src/dev/arm/gic_v2.hh index f9b66b827..410414075 100644 --- a/src/dev/arm/gic_v2.hh +++ b/src/dev/arm/gic_v2.hh @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, 2013, 2015-2018 ARM Limited + * Copyright (c) 2010, 2013, 2015-2019 ARM Limited * All rights reserved * * The license below extends only to copyright in the software and shall @@ -309,8 +309,11 @@ class GicV2 : public BaseGic, public BaseGicRegisters if (gem5ExtensionsEnabled) { ctx_mask = ctx; } else { - // convert the CPU id number into a bit mask - ctx_mask = power(2, ctx); + fatal_if(ctx >= 8, + "%s requires the gem5_extensions parameter to support " + "more than 8 cores\n", name()); + // convert the CPU id number into a bit mask + ctx_mask = 1 << ctx; } return ctx_mask; } else {