Commit 1b6261bfc0 for qemu.org

commit 1b6261bfc069125f70fa0bf0d6ec719d5f358afa
Author: Richard Henderson <richard.henderson@linaro.org>
Date:   Fri Sep 26 16:48:24 2025 -0700

    accel/hvf: Move hvf_log_sync to hvf_log_clear

    Right idea, wrong hook.  log_sync is called before using
    dirty bit data (which for hvf is already up-to-date),
    whereas log_clear is called before cleaning the range.

    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    Tested-by: Philippe Mathieu-Daudé <philmd@linaro.org>
    Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
    Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
    Reviewed-by: Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>
    Message-ID: <20260112103034.65310-8-philmd@linaro.org>

diff --git a/accel/hvf/hvf-all.c b/accel/hvf/hvf-all.c
index bbb0403d24..3b6b9d6ea6 100644
--- a/accel/hvf/hvf-all.c
+++ b/accel/hvf/hvf-all.c
@@ -224,12 +224,13 @@ static void hvf_log_stop(MemoryListener *listener,
     }
 }

-static void hvf_log_sync(MemoryListener *listener,
-                         MemoryRegionSection *section)
+static void hvf_log_clear(MemoryListener *listener,
+                          MemoryRegionSection *section)
 {
     /*
-     * sync of dirty pages is handled elsewhere; just make sure we keep
-     * tracking the region.
+     * The dirty page bits within section are being cleared.
+     * Some number of those pages may have been dirtied and
+     * the write permission enabled.  Reset the range read-only.
      */
     hvf_protect_clean_range(section->offset_within_address_space,
                             int128_get64(section->size));
@@ -254,7 +255,7 @@ static MemoryListener hvf_memory_listener = {
     .region_del = hvf_region_del,
     .log_start = hvf_log_start,
     .log_stop = hvf_log_stop,
-    .log_sync = hvf_log_sync,
+    .log_clear = hvf_log_clear,
 };

 static int hvf_accel_init(AccelState *as, MachineState *ms)