Commit ade9c1aa authored by Xu, Anthony's avatar Xu, Anthony Committed by Paolo Bonzini
Browse files

clear pending status before calling memory commit



clear pending status before calling memory commit.
Otherwise when memory_region_finalize is called,
memory_region_transaction_depth is 0 and
memory_region_update_pending is true.
That's wrong.

Signed-off -by: default avatarAnthony Xu <anthony.xu@intel.com>

Message-Id: <4712D8F4B26E034E80552F30A67BE0B1A2E3D5@ORSMSX112.amr.corp.intel.com>

Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
parent 08329701
Loading
Loading
Loading
Loading
+2 −8
Original line number Diff line number Diff line
@@ -906,12 +906,6 @@ void memory_region_transaction_begin(void)
    ++memory_region_transaction_depth;
}

static void memory_region_clear_pending(void)
{
    memory_region_update_pending = false;
    ioeventfd_update_pending = false;
}

void memory_region_transaction_commit(void)
{
    AddressSpace *as;
@@ -927,14 +921,14 @@ void memory_region_transaction_commit(void)
            QTAILQ_FOREACH(as, &address_spaces, address_spaces_link) {
                address_space_update_topology(as);
            }

            memory_region_update_pending = false;
            MEMORY_LISTENER_CALL_GLOBAL(commit, Forward);
        } else if (ioeventfd_update_pending) {
            QTAILQ_FOREACH(as, &address_spaces, address_spaces_link) {
                address_space_update_ioeventfds(as);
            }
            ioeventfd_update_pending = false;
        }
        memory_region_clear_pending();
   }
}