diff options
author | Peter Maydell <peter.maydell@linaro.org> | 2022-08-22 14:23:50 +0100 |
---|---|---|
committer | Richard Henderson <richard.henderson@linaro.org> | 2022-09-14 11:19:40 +0100 |
commit | c117c0649ce4022f518a7f0bc14bf7b036c89de3 (patch) | |
tree | 203e23bcef614822e2f2b8b8c955f98f45d80c04 /event-loop-base.c | |
parent | 76e25d41d44c49eb0fe399064a719702a3023102 (diff) | |
download | qemu-c117c0649ce4022f518a7f0bc14bf7b036c89de3.zip qemu-c117c0649ce4022f518a7f0bc14bf7b036c89de3.tar.gz qemu-c117c0649ce4022f518a7f0bc14bf7b036c89de3.tar.bz2 |
target/arm: Correct value returned by pmu_counter_mask()
pmu_counter_mask() accidentally returns a value with bits [63:32]
set, because the expression it returns is evaluated as a signed value
that gets sign-extended to 64 bits. Force the whole expression to be
evaluated with 64-bit arithmetic with ULL suffixes.
The main effect of this bug was that a guest could write to the bits
in the high half of registers like PMCNTENSET_EL0 that are supposed
to be RES0.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20220822132358.3524971-3-peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'event-loop-base.c')
0 files changed, 0 insertions, 0 deletions