diff options
| -rw-r--r-- | net/vmw_vsock/virtio_transport.c | 7 | 
1 files changed, 5 insertions, 2 deletions
| diff --git a/net/vmw_vsock/virtio_transport.c b/net/vmw_vsock/virtio_transport.c index e0c2c992ad9c..4f7c99dfd16c 100644 --- a/net/vmw_vsock/virtio_transport.c +++ b/net/vmw_vsock/virtio_transport.c @@ -357,11 +357,14 @@ static void virtio_vsock_event_fill(struct virtio_vsock *vsock)  static void virtio_vsock_reset_sock(struct sock *sk)  { -	lock_sock(sk); +	/* vmci_transport.c doesn't take sk_lock here either.  At least we're +	 * under vsock_table_lock so the sock cannot disappear while we're +	 * executing. +	 */ +  	sk->sk_state = TCP_CLOSE;  	sk->sk_err = ECONNRESET;  	sk_error_report(sk); -	release_sock(sk);  }  static void virtio_vsock_update_guest_cid(struct virtio_vsock *vsock) |