RE: [PATCH net] vsock: fix timeout in vsock_accept()

From: Jorgen Hansen
Date: Wed May 27 2020 - 04:44:50 EST


> From: Stefano Garzarella <sgarzare@xxxxxxxxxx>
> Sent: Wednesday, May 27, 2020 9:57 AM
>
> The accept(2) is an "input" socket interface, so we should use
> SO_RCVTIMEO instead of SO_SNDTIMEO to set the timeout.
>
> So this patch replace sock_sndtimeo() with sock_rcvtimeo() to
> use the right timeout in the vsock_accept().
>
> Fixes: d021c344051a ("VSOCK: Introduce VM Sockets")
> Signed-off-by: Stefano Garzarella <sgarzare@xxxxxxxxxx>
> ---
> net/vmw_vsock/af_vsock.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/net/vmw_vsock/af_vsock.c b/net/vmw_vsock/af_vsock.c
> index a5f28708e0e7..626bf9044418 100644
> --- a/net/vmw_vsock/af_vsock.c
> +++ b/net/vmw_vsock/af_vsock.c
> @@ -1408,7 +1408,7 @@ static int vsock_accept(struct socket *sock, struct
> socket *newsock, int flags,
> /* Wait for children sockets to appear; these are the new sockets
> * created upon connection establishment.
> */
> - timeout = sock_sndtimeo(listener, flags & O_NONBLOCK);
> + timeout = sock_rcvtimeo(listener, flags & O_NONBLOCK);
> prepare_to_wait(sk_sleep(listener), &wait, TASK_INTERRUPTIBLE);
>
> while ((connected = vsock_dequeue_accept(listener)) == NULL &&
> --
> 2.25.4

Thanks for fixing this!

Reviewed-by: Jorgen Hansen <jhansen@xxxxxxxxxx>