From: Paolo Bonzini Date: Fri, 27 Jan 2017 15:40:12 +0000 (+0100) Subject: memory: make memory_listener_unregister idempotent X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=1d8280c18f96f0cd96d1e7acd62f7250c4da1a84;p=qemu.git memory: make memory_listener_unregister idempotent Make it easy to unregister a MemoryListener without tracking whether it had been registered before. Signed-off-by: Paolo Bonzini Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- diff --git a/memory.c b/memory.c index 6c58373422..ed8b5aa83e 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)