Commit 49877834 authored by Paolo Bonzini's avatar Paolo Bonzini
Browse files

migration: fix incorrect memory_global_dirty_log_start outside BQL



This can cause various segmentation faults or aborts in qemu-iotests
test 091.

Fixes: 5b82b703
Cc: Dave Gilbert <dgilbert@redhat.com>
Reviewed-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
parent 98799b0d
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -1920,6 +1920,9 @@ static int ram_save_setup(QEMUFile *f, void *opaque)
        acct_clear();
    }

    /* For memory_global_dirty_log_start below.  */
    qemu_mutex_lock_iothread();

    qemu_mutex_lock_ramlist();
    rcu_read_lock();
    bytes_transferred = 0;
@@ -1944,6 +1947,7 @@ static int ram_save_setup(QEMUFile *f, void *opaque)
    memory_global_dirty_log_start();
    migration_bitmap_sync();
    qemu_mutex_unlock_ramlist();
    qemu_mutex_unlock_iothread();

    qemu_put_be64(f, ram_bytes_total() | RAM_SAVE_FLAG_MEM_SIZE);