memory: Fold memory_region_update_topology into memory_region_transaction_commit
Simplify the code as we are using now only a subset of the original features of memory_region_update_topology. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
This commit is contained in:
parent
59023ef411
commit
02e2b95fb4
39
memory.c
39
memory.c
|
@ -24,7 +24,6 @@
|
||||||
#include "exec-obsolete.h"
|
#include "exec-obsolete.h"
|
||||||
|
|
||||||
unsigned memory_region_transaction_depth = 0;
|
unsigned memory_region_transaction_depth = 0;
|
||||||
static bool memory_region_update_pending = false;
|
|
||||||
static bool global_dirty_log = false;
|
static bool global_dirty_log = false;
|
||||||
|
|
||||||
static QTAILQ_HEAD(memory_listeners, MemoryListener) memory_listeners
|
static QTAILQ_HEAD(memory_listeners, MemoryListener) memory_listeners
|
||||||
|
@ -732,31 +731,6 @@ static void address_space_update_topology(AddressSpace *as)
|
||||||
address_space_update_ioeventfds(as);
|
address_space_update_ioeventfds(as);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void memory_region_update_topology(MemoryRegion *mr)
|
|
||||||
{
|
|
||||||
if (memory_region_transaction_depth) {
|
|
||||||
memory_region_update_pending |= !mr || mr->enabled;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mr && !mr->enabled) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
MEMORY_LISTENER_CALL_GLOBAL(begin, Forward);
|
|
||||||
|
|
||||||
if (address_space_memory.root) {
|
|
||||||
address_space_update_topology(&address_space_memory);
|
|
||||||
}
|
|
||||||
if (address_space_io.root) {
|
|
||||||
address_space_update_topology(&address_space_io);
|
|
||||||
}
|
|
||||||
|
|
||||||
MEMORY_LISTENER_CALL_GLOBAL(commit, Forward);
|
|
||||||
|
|
||||||
memory_region_update_pending = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
void memory_region_transaction_begin(void)
|
void memory_region_transaction_begin(void)
|
||||||
{
|
{
|
||||||
++memory_region_transaction_depth;
|
++memory_region_transaction_depth;
|
||||||
|
@ -766,8 +740,17 @@ void memory_region_transaction_commit(void)
|
||||||
{
|
{
|
||||||
assert(memory_region_transaction_depth);
|
assert(memory_region_transaction_depth);
|
||||||
--memory_region_transaction_depth;
|
--memory_region_transaction_depth;
|
||||||
if (!memory_region_transaction_depth && memory_region_update_pending) {
|
if (!memory_region_transaction_depth) {
|
||||||
memory_region_update_topology(NULL);
|
MEMORY_LISTENER_CALL_GLOBAL(begin, Forward);
|
||||||
|
|
||||||
|
if (address_space_memory.root) {
|
||||||
|
address_space_update_topology(&address_space_memory);
|
||||||
|
}
|
||||||
|
if (address_space_io.root) {
|
||||||
|
address_space_update_topology(&address_space_io);
|
||||||
|
}
|
||||||
|
|
||||||
|
MEMORY_LISTENER_CALL_GLOBAL(commit, Forward);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue