Paolo Bonzini <pbonz...@redhat.com> wrote: > Il 18/10/2012 09:30, Juan Quintela ha scritto: >> - if (s->migration_state->complete) { >> + qemu_mutex_lock_iothread(); > > So, was it a bug that we were accessing ->complete without the BQL? > >> + if (m->state != MIG_STATE_ACTIVE) { >> + DPRINTF("put_ready returning because of non-active state\n"); > > The contents of the debug message obsolete. Besides, I would just put > the two branches in the same "if (m->state != MIG_STATE_ACTIVE || > m->complete)".
BQL is not needed. Complete is only used by the migration thread. but maintaing it outside of the iothread lock, makes locking even more complicated. > >> + qemu_mutex_unlock_iothread(); >> break; >> } >> + if (m->complete) { >> + qemu_mutex_unlock_iothread(); >> + break; >> + } >> + qemu_mutex_unlock_iothread(); >> + > > Paolo