On Tue, Aug 08, 2017 at 06:26:11PM +0200, Juan Quintela wrote: [...]
> void migration_fd_process_incoming(QEMUFile *f) > { > - Coroutine *co = qemu_coroutine_create(process_incoming_migration_co, f); > - > + Coroutine *co = qemu_coroutine_create(process_incoming_migration_co, > NULL); > + MigrationIncomingState *mis = migration_incoming_get_current(); > + > + if (!mis->from_src_file) { > + mis->from_src_file = f; [1] > + } > qemu_file_set_blocking(f, false); > qemu_coroutine_enter(co); > } > > +void migration_ioc_process_incoming(QIOChannel *ioc) > +{ > + MigrationIncomingState *mis = migration_incoming_get_current(); > + > + if (!mis->from_src_file) { > + QEMUFile *f = qemu_fopen_channel_input(ioc); > + mis->from_src_file = f; Remove this line? Since migration_fd_process_incoming() will set it up as well below at [1]. Then we can make sure there will be only one place to setup from_src_file. > + migration_fd_process_incoming(f); > + } > + /* We still only have a single channel. Nothing to do here yet */ > +} Thanks, -- Peter Xu