diff mbox series

[net] vsock: fix timeout in vsock_accept()

Message ID 20200527075655.69889-1-sgarzare@redhat.com
State Accepted
Delegated to: David Miller
Headers show
Series [net] vsock: fix timeout in vsock_accept() | expand

Commit Message

Stefano Garzarella May 27, 2020, 7:56 a.m. UTC
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@redhat.com>
---
 net/vmw_vsock/af_vsock.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Jorgen Hansen May 27, 2020, 8:44 a.m. UTC | #1
> From: Stefano Garzarella <sgarzare@redhat.com>
> 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@redhat.com>
> ---
>  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@vmware.com>
David Miller May 27, 2020, 6:21 p.m. UTC | #2
From: Stefano Garzarella <sgarzare@redhat.com>
Date: Wed, 27 May 2020 09:56:55 +0200

> 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@redhat.com>

Applied and queued up for -stable, thank you.
diff mbox series

Patch

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 &&