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