On Fri, Feb 22, 2013 at 5:36 PM, Paolo Bonzini <pbonz...@redhat.com> wrote: > Accessing s->state outside the big QEMU lock will simplify a bit the > locking/unlocking of the iothread lock. > > We need to keep the lock in migrate_fd_error and migrate_fd_completed, > however, because they call migrate_fd_cleanup. > > Reviewed-by: Orit Wasserman <owass...@redhat.com> > Reviewed-by: Juan Quintela <quint...@redhat.com> > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> > --- > migration.c | 33 +++++++++++++++++++++------------ > 1 file changed, 21 insertions(+), 12 deletions(-) > > diff --git a/migration.c b/migration.c > index b091532..b40755f 100644 > --- a/migration.c > +++ b/migration.c > @@ -279,19 +279,25 @@ static void migrate_fd_cleanup(MigrationState *s) > notifier_list_notify(&migration_state_notifiers, s); > } > > +static void migrate_finish_set_state(MigrationState *s, int new_state) > +{ > + if (__sync_val_compare_and_swap(&s->state, MIG_STATE_ACTIVE,
kraxel_rhel61's mingw build fails: LINK i386-softmmu/qemu-system-i386.exe ../migration.o:migration.c:(.text+0x408): undefined reference to `__sync_val_compare_and_swap_4' ../migration.o:migration.c:(.text+0x7af): undefined reference to `__sync_val_compare_and_swap_4' ../migration.o:migration.c:(.text+0x827): undefined reference to `__sync_val_compare_and_swap_4' http://buildbot.b1-systems.de/qemu/builders/default_mingw32/builds/566/steps/compile/logs/stdio The latest RHEL6 mingw gcc is version 4.4 but this buildslave is RHEL6.1 so perhaps it's an older version that is missing the atomics builtins? Stefan