summaryrefslogtreecommitdiffstats
path: root/net/vmw_vsock/virtio_transport.c
diff options
context:
space:
mode:
authorStefano Garzarella <sgarzare@redhat.com>2019-02-01 12:42:07 +0100
committerDavid S. Miller <davem@davemloft.net>2019-02-03 11:06:25 -0800
commit85965487abc540368393a15491e6e7fcd230039d (patch)
treee06307c9f6e757d2263f5a4584054a8f7b338fda /net/vmw_vsock/virtio_transport.c
parent22b5c0b63f32568e130fa2df4ba23efce3eb495b (diff)
downloadlinux-85965487abc540368393a15491e6e7fcd230039d.tar.gz
linux-85965487abc540368393a15491e6e7fcd230039d.tar.bz2
linux-85965487abc540368393a15491e6e7fcd230039d.zip
vsock/virtio: reset connected sockets on device removal
When the virtio transport device disappear, we should reset all connected sockets in order to inform the users. Signed-off-by: Stefano Garzarella <sgarzare@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/vmw_vsock/virtio_transport.c')
-rw-r--r--net/vmw_vsock/virtio_transport.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/net/vmw_vsock/virtio_transport.c b/net/vmw_vsock/virtio_transport.c
index 9dae54698737..15eb5d3d4750 100644
--- a/net/vmw_vsock/virtio_transport.c
+++ b/net/vmw_vsock/virtio_transport.c
@@ -634,6 +634,9 @@ static void virtio_vsock_remove(struct virtio_device *vdev)
flush_work(&vsock->event_work);
flush_work(&vsock->send_pkt_work);
+ /* Reset all connected sockets when the device disappear */
+ vsock_for_each_connected_socket(virtio_vsock_reset_sock);
+
vdev->config->reset(vdev);
mutex_lock(&vsock->rx_lock);