]> git.proxmox.com Git - mirror_qemu.git/commitdiff
accel/tcg: Fix check for page writeability in load_atomic16_or_exit
authorRichard Henderson <richard.henderson@linaro.org>
Thu, 25 May 2023 23:10:59 +0000 (23:10 +0000)
committerRichard Henderson <richard.henderson@linaro.org>
Tue, 30 May 2023 16:51:11 +0000 (09:51 -0700)
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>
accel/tcg/ldst_atomicity.c.inc

index 0f6b3f8ab67f34f9436d35ccab8dd4b32e46b9e9..35ce6d6368dd67963aecae342b66e2d83954607f 100644 (file)
@@ -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