summaryrefslogtreecommitdiffstats
path: root/hw/cpu
diff options
context:
space:
mode:
authorPeter Maydell2022-01-11 18:10:40 +0100
committerPeter Maydell2022-01-20 17:04:58 +0100
commitef011555da8bcabd74ebd79f6a4e1c2ec763efd0 (patch)
treecad85f14ba07f99217fb54b1b02fb58b5deebb6c /hw/cpu
parenthw/intc/arm_gicv3_its: Don't use data if reading command failed (diff)
downloadqemu-ef011555da8bcabd74ebd79f6a4e1c2ec763efd0.tar.gz
qemu-ef011555da8bcabd74ebd79f6a4e1c2ec763efd0.tar.xz
qemu-ef011555da8bcabd74ebd79f6a4e1c2ec763efd0.zip
hw/intc/arm_gicv3_its: Use enum for return value of process_* functions
When an ITS detects an error in a command, it has an implementation-defined (CONSTRAINED UNPREDICTABLE) choice of whether to ignore the command, proceeding to the next one in the queue, or to stall the ITS command queue, processing nothing further. The behaviour required when the read of the command packet from memory fails is less clearly documented, but the same set of choices as for command errors seem reasonable. The intention of the QEMU implementation, as documented in the comments, is that if we encounter a memory error reading the command packet or one of the various data tables then we should stall, but for command parameter errors we should ignore the queue and continue. However, we don't actually do this. To get the desired behaviour, the various process_* functions need to return true to cause process_cmdq() to advance to the next command and keep processing, and false to stall command processing. What they mostly do is return false for any kind of error. To make the code clearer, replace the 'bool' return from the process_ functions with an enum which may be either CMD_STALL or CMD_CONTINUE. In this commit no behaviour changes; in subsequent commits we will adjust the error-return paths for the process_ functions one by one. 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> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Message-id: 20220111171048.3545974-6-peter.maydell@linaro.org
Diffstat (limited to 'hw/cpu')
0 files changed, 0 insertions, 0 deletions