target/arm: Don't set ISV when reporting stage 1 faults in ESR_EL2
authorPeter Maydell <peter.maydell@linaro.org>
Thu, 20 Apr 2023 09:21:16 +0000 (10:21 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Thu, 20 Apr 2023 09:21:16 +0000 (10:21 +0100)
commita3856808d9e687fce071ffca223daeb88c760854
tree8c73fe498c71f54e95ceb647140fc2d6a3f78f72
parente61c4d87fa9d2ff030015f943f04f41cb3e3161d
target/arm: Don't set ISV when reporting stage 1 faults in ESR_EL2

The syndrome value reported to ESR_EL2 should only contain the
detailed instruction syndrome information when the fault has been
caused by a stage 2 abort, not when the fault was a stage 1 abort
(i.e.  caused by execution at EL2).  We were getting this wrong and
reporting the detailed ISV information all the time.

Fix the bug by checking fi->stage2.  Add a TODO comment noting the
cases where we'll have to come back and revisit this when we
implement FEAT_LS64 and friends.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20230331145045.2584941-3-peter.maydell@linaro.org
target/arm/tcg/tlb_helper.c