]> git.proxmox.com Git - mirror_qemu.git/commitdiff
migration/rdma: unregister fd handler
authorDr. David Alan Gilbert <dgilbert@redhat.com>
Tue, 22 Jan 2019 17:31:11 +0000 (17:31 +0000)
committerDr. David Alan Gilbert <dgilbert@redhat.com>
Wed, 23 Jan 2019 15:51:32 +0000 (15:51 +0000)
Unregister the fd handler before we destroy the channel,
otherwise we've got a race where we might land in the
fd handler just as we're closing the device.

(The race is quite data dependent, you just have to have
the right set of devices for it to trigger).

Corresponds to RH bz: https://bugzilla.redhat.com/show_bug.cgi?id=1666601

Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Message-Id: <20190122173111.29821-1-dgilbert@redhat.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
migration/rdma.c

index 9b2e7e10aa6cd4b07d791894ff128bc7a298ae51..54a3c11540d947a741b97afdcef8cf68bc70da4a 100644 (file)
@@ -2321,6 +2321,7 @@ static void qemu_rdma_cleanup(RDMAContext *rdma)
         rdma->connected = false;
     }
 
+    qemu_set_fd_handler(rdma->channel->fd, NULL, NULL, NULL);
     g_free(rdma->dest_blocks);
     rdma->dest_blocks = NULL;