summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Maydell2016-07-11 20:22:52 +0200
committerPeter Maydell2016-07-19 18:56:27 +0200
commitacd82796211041c5af43c8c523b85d250c2ccebe (patch)
tree671c635c8e4aa975a241f3681d0e889054775a3a
parenttarget-arm: Fix unreachable code in gicv3_class_name() (diff)
downloadqemu-acd82796211041c5af43c8c523b85d250c2ccebe.tar.gz
qemu-acd82796211041c5af43c8c523b85d250c2ccebe.tar.xz
qemu-acd82796211041c5af43c8c523b85d250c2ccebe.zip
arm_gicv3: Add assert()s to tell Coverity that offsets are aligned
Coverity complains that the GICR_IPRIORITYR case in gicv3_readl() can overflow an array, because it doesn't know that the offsets passed to that function must be word aligned. Add some assert()s which hopefully tell Coverity that this isn't possible. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Message-id: 1468261372-17508-1-git-send-email-peter.maydell@linaro.org
-rw-r--r--hw/intc/arm_gicv3_redist.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/hw/intc/arm_gicv3_redist.c b/hw/intc/arm_gicv3_redist.c
index 2f60096e6e..77e5cfa327 100644
--- a/hw/intc/arm_gicv3_redist.c
+++ b/hw/intc/arm_gicv3_redist.c
@@ -420,6 +420,8 @@ MemTxResult gicv3_redist_read(void *opaque, hwaddr offset, uint64_t *data,
MemTxResult r;
int cpuidx;
+ assert((offset & (size - 1)) == 0);
+
/* This region covers all the redistributor pages; there are
* (for GICv3) two 64K pages per CPU. At the moment they are
* all contiguous (ie in this one region), though we might later
@@ -468,6 +470,8 @@ MemTxResult gicv3_redist_write(void *opaque, hwaddr offset, uint64_t data,
MemTxResult r;
int cpuidx;
+ assert((offset & (size - 1)) == 0);
+
/* This region covers all the redistributor pages; there are
* (for GICv3) two 64K pages per CPU. At the moment they are
* all contiguous (ie in this one region), though we might later