hw/intc/arm_gicv3_its: Don't use data if reading command failed
authorPeter Maydell <peter.maydell@linaro.org>
Tue, 11 Jan 2022 17:10:39 +0000 (17:10 +0000)
committerPeter Maydell <peter.maydell@linaro.org>
Thu, 20 Jan 2022 16:04:57 +0000 (16:04 +0000)
commitf0b4b2a28c4ab26505f13f07da07190387f848a4
treefdd92e466dc5f99f0168dbaa23a2db84d0869b91
parent7d62b2dcdb04fa625abb6600dbffd4464c3e4a85
hw/intc/arm_gicv3_its: Don't use data if reading command failed

In process_cmdq(), we read 64 bits of the command packet, which
contain the command identifier, which we then switch() on to dispatch
to an appropriate sub-function.  However, if address_space_ldq_le()
reports a memory transaction failure, we still read the command
identifier out of the data and switch() on it.  Restructure the code
so that we stop immediately (stalling the command queue) in this
case.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220111171048.3545974-5-peter.maydell@linaro.org
hw/intc/arm_gicv3_its.c