diff mbox

[1/9] memory: make memory_listener_unregister idempotent

Message ID 1485531620-121182-2-git-send-email-pbonzini@redhat.com
State New
Headers show

Commit Message

Paolo Bonzini Jan. 27, 2017, 3:40 p.m. UTC
Make it easy to unregister a MemoryListener without tracking whether it
had been registered before.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
	v3: new

 memory.c | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Philippe Mathieu-Daudé Feb. 9, 2017, 10:54 p.m. UTC | #1
On 01/27/2017 12:40 PM, Paolo Bonzini wrote:
> Make it easy to unregister a MemoryListener without tracking whether it
> had been registered before.
>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

> ---
> 	v3: new
>
>  memory.c | 5 +++++
>  1 file changed, 5 insertions(+)
>
> diff --git a/memory.c b/memory.c
> index 2bfc37f..8fafd4c 100644
> --- a/memory.c
> +++ b/memory.c
> @@ -2371,8 +2371,13 @@ void memory_listener_register(MemoryListener *listener, AddressSpace *as)
>
>  void memory_listener_unregister(MemoryListener *listener)
>  {
> +    if (!listener->address_space) {
> +        return;
> +    }
> +
>      QTAILQ_REMOVE(&memory_listeners, listener, link);
>      QTAILQ_REMOVE(&listener->address_space->listeners, listener, link_as);
> +    listener->address_space = NULL;
>  }
>
>  void address_space_init(AddressSpace *as, MemoryRegion *root, const char *name)
>
diff mbox

Patch

diff --git a/memory.c b/memory.c
index 2bfc37f..8fafd4c 100644
--- a/memory.c
+++ b/memory.c
@@ -2371,8 +2371,13 @@  void memory_listener_register(MemoryListener *listener, AddressSpace *as)
 
 void memory_listener_unregister(MemoryListener *listener)
 {
+    if (!listener->address_space) {
+        return;
+    }
+
     QTAILQ_REMOVE(&memory_listeners, listener, link);
     QTAILQ_REMOVE(&listener->address_space->listeners, listener, link_as);
+    listener->address_space = NULL;
 }
 
 void address_space_init(AddressSpace *as, MemoryRegion *root, const char *name)