hw/intc/arm_gicv3: ICC_HPPIR* return SPURIOUS if int group is disabled
commit44e25fbc1900c99c91a44e532c5bd680bc403459
authorPeter Maydell <peter.maydell@linaro.org>
Thu, 28 Mar 2024 15:33:33 +0000 (28 15:33 +0000)
committerPeter Maydell <peter.maydell@linaro.org>
Tue, 2 Apr 2024 09:02:44 +0000 (2 10:02 +0100)
tree4490136e721aebc4d98cf5f79fe9222c2a3d295f
parentaaaae12055064ed10c12d8660246f1b4aa06e5ed
hw/intc/arm_gicv3: ICC_HPPIR* return SPURIOUS if int group is disabled

If the group of the highest priority pending interrupt is disabled
via ICC_IGRPEN*, the ICC_HPPIR* registers should return
INTID_SPURIOUS, not the interrupt ID.  (See the GIC architecture
specification pseudocode functions ICC_HPPIR1_EL1[] and
HighestPriorityPendingInterrupt().)

Make HPPIR reads honour the group disable, the way we already do
when determining whether to preempt in icc_hppi_can_preempt().

Cc: qemu-stable@nongnu.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20240328153333.2522667-1-peter.maydell@linaro.org
hw/intc/arm_gicv3_cpuif.c