On Fri, 23 Aug 2024 at 23:12, Fabiano Rosas <faro...@suse.de> wrote: > Prior to moving the ram code into multifd-nocomp.c, change the code to > register the nocomp ops dynamically so we don't need to have the ops > structure defined in multifd.c. > > While here, move the ops struct initialization to the end of the file > to make the next diff cleaner. > > Signed-off-by: Fabiano Rosas <faro...@suse.de> > --- > migration/multifd.c | 32 +++++++++++++++++++------------- > 1 file changed, 19 insertions(+), 13 deletions(-) > > diff --git a/migration/multifd.c b/migration/multifd.c > index 9f40bb2f16..e100836cbe 100644 > --- a/migration/multifd.c > +++ b/migration/multifd.c > @@ -287,22 +287,12 @@ static int multifd_nocomp_recv(MultiFDRecvParams *p, > Error **errp) > return qio_channel_readv_all(p->c, p->iov, p->normal_num, errp); > } > > -static MultiFDMethods multifd_nocomp_ops = { > - .send_setup = multifd_nocomp_send_setup, > - .send_cleanup = multifd_nocomp_send_cleanup, > - .send_prepare = multifd_nocomp_send_prepare, > - .recv_setup = multifd_nocomp_recv_setup, > - .recv_cleanup = multifd_nocomp_recv_cleanup, > - .recv = multifd_nocomp_recv > -}; > - > -static MultiFDMethods *multifd_ops[MULTIFD_COMPRESSION__MAX] = { > - [MULTIFD_COMPRESSION_NONE] = &multifd_nocomp_ops, > -}; > +static MultiFDMethods *multifd_ops[MULTIFD_COMPRESSION__MAX] = {}; > > void multifd_register_ops(int method, MultiFDMethods *ops) > { > - assert(0 < method && method < MULTIFD_COMPRESSION__MAX); > + assert(0 <= method && method < MULTIFD_COMPRESSION__MAX); > + assert(!multifd_ops[method]); > multifd_ops[method] = ops; > } > > @@ -1701,3 +1691,19 @@ bool multifd_send_prepare_common(MultiFDSendParams *p) > > return true; > } > + > +static MultiFDMethods multifd_nocomp_ops = { > + .send_setup = multifd_nocomp_send_setup, > + .send_cleanup = multifd_nocomp_send_cleanup, > + .send_prepare = multifd_nocomp_send_prepare, > + .recv_setup = multifd_nocomp_recv_setup, > + .recv_cleanup = multifd_nocomp_recv_cleanup, > + .recv = multifd_nocomp_recv > +}; > + > +static void multifd_nocomp_register(void) > +{ > + multifd_register_ops(MULTIFD_COMPRESSION_NONE, &multifd_nocomp_ops); > +} > + > +migration_init(multifd_nocomp_register);
Looks okay. Reviewed-by: Prasad Pandit <p...@fedoraproject.org> Thank you. --- - Prasad