diff options
author | Richard Henderson <richard.henderson@linaro.org> | 2023-05-25 23:10:59 +0000 |
---|---|---|
committer | Richard Henderson <richard.henderson@linaro.org> | 2023-05-30 09:51:11 -0700 |
commit | 9e0e6a7e8e2351ca757f08f491ef99bbc2afd548 (patch) | |
tree | 763edeb0ad0ba273a11ccef96842239bce2fe809 /accel | |
parent | 723d3a276f3ea3efb4d4deb4c1150168db464dba (diff) | |
download | qemu-9e0e6a7e8e2351ca757f08f491ef99bbc2afd548.zip qemu-9e0e6a7e8e2351ca757f08f491ef99bbc2afd548.tar.gz qemu-9e0e6a7e8e2351ca757f08f491ef99bbc2afd548.tar.bz2 |
accel/tcg: Fix check for page writeability in load_atomic16_or_exit
PAGE_WRITE is current writability, as modified by TB protection;
PAGE_WRITE_ORG is the original page writability.
Fixes: cdfac37be0d ("accel/tcg: Honor atomicity of loads")
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'accel')
-rw-r--r-- | accel/tcg/ldst_atomicity.c.inc | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/accel/tcg/ldst_atomicity.c.inc b/accel/tcg/ldst_atomicity.c.inc index 0f6b3f8..35ce6d6 100644 --- a/accel/tcg/ldst_atomicity.c.inc +++ b/accel/tcg/ldst_atomicity.c.inc @@ -156,7 +156,7 @@ static uint64_t load_atomic8_or_exit(CPUArchState *env, uintptr_t ra, void *pv) * another process, because the fallback start_exclusive solution * provides no protection across processes. */ - if (!page_check_range(h2g(pv), 8, PAGE_WRITE)) { + if (!page_check_range(h2g(pv), 8, PAGE_WRITE_ORG)) { uint64_t *p = __builtin_assume_aligned(pv, 8); return *p; } @@ -191,7 +191,7 @@ static Int128 load_atomic16_or_exit(CPUArchState *env, uintptr_t ra, void *pv) * another process, because the fallback start_exclusive solution * provides no protection across processes. */ - if (!page_check_range(h2g(p), 16, PAGE_WRITE)) { + if (!page_check_range(h2g(p), 16, PAGE_WRITE_ORG)) { return *p; } #endif |