memory: eliminate global MemoryListeners

There is none, so just drop the code.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Paolo Bonzini 2016-09-22 16:11:54 +02:00
parent 0fe4fca4e1
commit d45fa784cd
2 changed files with 7 additions and 18 deletions

View File

@ -255,7 +255,7 @@ struct MemoryListener {
hwaddr addr, hwaddr len); hwaddr addr, hwaddr len);
/* Lower = earlier (during add), later (during del) */ /* Lower = earlier (during add), later (during del) */
unsigned priority; unsigned priority;
AddressSpace *address_space_filter; AddressSpace *address_space;
QTAILQ_ENTRY(MemoryListener) link; QTAILQ_ENTRY(MemoryListener) link;
}; };

View File

@ -100,8 +100,7 @@ enum ListenerDirection { Forward, Reverse };
static bool memory_listener_match(MemoryListener *listener, static bool memory_listener_match(MemoryListener *listener,
MemoryRegionSection *section) MemoryRegionSection *section)
{ {
return !listener->address_space_filter return listener->address_space == section->address_space;
|| listener->address_space_filter == section->address_space;
} }
#define MEMORY_LISTENER_CALL_GLOBAL(_callback, _direction, _args...) \ #define MEMORY_LISTENER_CALL_GLOBAL(_callback, _direction, _args...) \
@ -2176,9 +2175,7 @@ void memory_global_dirty_log_sync(void)
if (!listener->log_sync) { if (!listener->log_sync) {
continue; continue;
} }
/* Global listeners are being phased out. */ as = listener->address_space;
assert(listener->address_space_filter);
as = listener->address_space_filter;
view = address_space_get_flatview(as); view = address_space_get_flatview(as);
FOR_EACH_FLAT_RANGE(fr, view) { FOR_EACH_FLAT_RANGE(fr, view) {
MemoryRegionSection mrs = section_from_flat_range(fr, as); MemoryRegionSection mrs = section_from_flat_range(fr, as);
@ -2218,11 +2215,6 @@ static void listener_add_address_space(MemoryListener *listener,
FlatView *view; FlatView *view;
FlatRange *fr; FlatRange *fr;
if (listener->address_space_filter
&& listener->address_space_filter != as) {
return;
}
if (listener->begin) { if (listener->begin) {
listener->begin(listener); listener->begin(listener);
} }
@ -2255,12 +2247,11 @@ static void listener_add_address_space(MemoryListener *listener,
flatview_unref(view); flatview_unref(view);
} }
void memory_listener_register(MemoryListener *listener, AddressSpace *filter) void memory_listener_register(MemoryListener *listener, AddressSpace *as)
{ {
MemoryListener *other = NULL; MemoryListener *other = NULL;
AddressSpace *as;
listener->address_space_filter = filter; listener->address_space = as;
if (QTAILQ_EMPTY(&memory_listeners) if (QTAILQ_EMPTY(&memory_listeners)
|| listener->priority >= QTAILQ_LAST(&memory_listeners, || listener->priority >= QTAILQ_LAST(&memory_listeners,
memory_listeners)->priority) { memory_listeners)->priority) {
@ -2274,9 +2265,7 @@ void memory_listener_register(MemoryListener *listener, AddressSpace *filter)
QTAILQ_INSERT_BEFORE(other, listener, link); QTAILQ_INSERT_BEFORE(other, listener, link);
} }
QTAILQ_FOREACH(as, &address_spaces, address_spaces_link) {
listener_add_address_space(listener, as); listener_add_address_space(listener, as);
}
} }
void memory_listener_unregister(MemoryListener *listener) void memory_listener_unregister(MemoryListener *listener)
@ -2310,7 +2299,7 @@ static void do_address_space_destroy(AddressSpace *as)
address_space_destroy_dispatch(as); address_space_destroy_dispatch(as);
QTAILQ_FOREACH(listener, &memory_listeners, link) { QTAILQ_FOREACH(listener, &memory_listeners, link) {
assert(listener->address_space_filter != as); assert(listener->address_space != as);
} }
flatview_unref(as->current_map); flatview_unref(as->current_map);