qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 8/8] physmem: add missing memory barrier


From: Richard Henderson
Subject: Re: [PATCH 8/8] physmem: add missing memory barrier
Date: Sun, 5 Mar 2023 11:40:07 -0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.7.1

On 3/3/23 09:19, Paolo Bonzini wrote:
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
  softmmu/physmem.c | 3 +++
  1 file changed, 3 insertions(+)

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

r~


diff --git a/softmmu/physmem.c b/softmmu/physmem.c
index 47143edb4f6c..a6efd8e8dd11 100644
--- a/softmmu/physmem.c
+++ b/softmmu/physmem.c
@@ -2927,6 +2927,8 @@ void cpu_register_map_client(QEMUBH *bh)
      qemu_mutex_lock(&map_client_list_lock);
      client->bh = bh;
      QLIST_INSERT_HEAD(&map_client_list, client, link);
+    /* Write map_client_list before reading in_use.  */
+    smp_mb();
      if (!qatomic_read(&bounce.in_use)) {
          cpu_notify_map_clients_locked();
      }
@@ -3116,6 +3118,7 @@ void address_space_unmap(AddressSpace *as, void *buffer, 
hwaddr len,
      qemu_vfree(bounce.buffer);
      bounce.buffer = NULL;
      memory_region_unref(bounce.mr);
+    /* Clear in_use before reading map_client_list.  */
      qatomic_mb_set(&bounce.in_use, false);
      cpu_notify_map_clients();
  }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]