[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 20/26] hw/intc/arm_gicv3_its: Use enum for return value of pr
From: |
Alex Bennée |
Subject: |
Re: [PATCH 20/26] hw/intc/arm_gicv3_its: Use enum for return value of process_* functions |
Date: |
Mon, 13 Dec 2021 14:40:06 +0000 |
User-agent: |
mu4e 1.7.5; emacs 28.0.90 |
Peter Maydell <peter.maydell@linaro.org> writes:
> 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>
--
Alex Bennée
- Re: [PATCH 17/26] hw/intc/arm_gicv3_its: Convert int ID check to num_intids convention, (continued)
- [PATCH 21/26] hw/intc/arm_gicv3_its: Fix return codes in process_its_cmd(), Peter Maydell, 2021/12/11
- [PATCH 08/26] hw/intc/arm_gicv3_its: Don't misuse GITS_TYPE_PHYSICAL define, Peter Maydell, 2021/12/11
- [PATCH 20/26] hw/intc/arm_gicv3_its: Use enum for return value of process_* functions, Peter Maydell, 2021/12/11
- [PATCH 26/26] hw/intc/arm_gicv3_its: Factor out "find address of table entry" code, Peter Maydell, 2021/12/11
- [PATCH 24/26] hw/intc/arm_gicv3_its: Fix return codes in process_mapc(), Peter Maydell, 2021/12/11
- [PATCH 25/26] hw/intc/arm_gicv3_its: Fix return codes in process_mapd(), Peter Maydell, 2021/12/11