On Tue, May 8, 2018 at 10:19 PM, Dr. David Alan Gilbert <dgilb...@redhat.com> wrote: > * Lidong Chen (jemmy858...@gmail.com) wrote: >> Because qio_channel_rdma_writev and qio_channel_rdma_readv maybe invoked >> by different threads concurrently, this patch removes unnecessary variables >> len in QIOChannelRDMA and use local variable instead. >> >> Signed-off-by: Lidong Chen <lidongc...@tencent.com> >> Reviewed-by: Dr. David Alan Gilbert <dgilb...@redhat.com> >> Reviewed-by: Daniel P. Berrangéberra...@redhat.com> > > Note there's a ' <' missing somehow; minor fix up during commit > hopefully. > > Dave
Sorry for this mistake, I will check more carefully. > >> --- >> migration/rdma.c | 15 +++++++-------- >> 1 file changed, 7 insertions(+), 8 deletions(-) >> >> diff --git a/migration/rdma.c b/migration/rdma.c >> index c745427..f5c1d02 100644 >> --- a/migration/rdma.c >> +++ b/migration/rdma.c >> @@ -404,7 +404,6 @@ struct QIOChannelRDMA { >> QIOChannel parent; >> RDMAContext *rdma; >> QEMUFile *file; >> - size_t len; >> bool blocking; /* XXX we don't actually honour this yet */ >> }; >> >> @@ -2640,6 +2639,7 @@ static ssize_t qio_channel_rdma_writev(QIOChannel *ioc, >> int ret; >> ssize_t done = 0; >> size_t i; >> + size_t len = 0; >> >> CHECK_ERROR_STATE(); >> >> @@ -2659,10 +2659,10 @@ static ssize_t qio_channel_rdma_writev(QIOChannel >> *ioc, >> while (remaining) { >> RDMAControlHeader head; >> >> - rioc->len = MIN(remaining, RDMA_SEND_INCREMENT); >> - remaining -= rioc->len; >> + len = MIN(remaining, RDMA_SEND_INCREMENT); >> + remaining -= len; >> >> - head.len = rioc->len; >> + head.len = len; >> head.type = RDMA_CONTROL_QEMU_FILE; >> >> ret = qemu_rdma_exchange_send(rdma, &head, data, NULL, NULL, >> NULL); >> @@ -2672,8 +2672,8 @@ static ssize_t qio_channel_rdma_writev(QIOChannel *ioc, >> return ret; >> } >> >> - data += rioc->len; >> - done += rioc->len; >> + data += len; >> + done += len; >> } >> } >> >> @@ -2768,8 +2768,7 @@ static ssize_t qio_channel_rdma_readv(QIOChannel *ioc, >> } >> } >> } >> - rioc->len = done; >> - return rioc->len; >> + return done; >> } >> >> /* >> -- >> 1.8.3.1 >> > -- > Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK