| From ab8aeac6699e399d9c4c4ea97e3e71315b6430b8 Mon Sep 17 00:00:00 2001 |
| From: Stefano Garzarella <sgarzare@redhat.com> |
| Date: Fri, 1 Feb 2019 12:42:07 +0100 |
| Subject: vsock/virtio: reset connected sockets on device removal |
| |
| [ Upstream commit 85965487abc540368393a15491e6e7fcd230039d ] |
| |
| 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> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| net/vmw_vsock/virtio_transport.c | 3 +++ |
| 1 file changed, 3 insertions(+) |
| |
| 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); |
| -- |
| 2.19.1 |
| |