Thread (7 messages) flat view 7 messages, 2 authors, 3d ago

Re: [PATCH v5 3/3] vsock: use sock_error() to consume sk_err after a failed connect

From: Stefano Garzarella <sgarzare@redhat.com>
Date: 2026-08-13 08:43:25
Also in: lkml, virtualization

On Tue, Aug 11, 2026 at 01:09:32AM +0800, Nguyen Dinh Phi wrote:
vsock_connect() returns sk_err to userspace but does not clear it:
 if (sk->sk_err) {
           err = -sk->sk_err;

For a blocking connect() the error has already been delivered as
connect()'s return value, so leaving it set causes subsequent operations
like poll()/epoll() to keep reporting POLLERR even though the connect
failure was already delivered.

The error should be consumed once it has been returned to userspace.
Switch to sock_error(), which reads and clears sk_err atomically,
matching the behavior of other protocol implementations such as
__inet_stream_connect().

Fixes: d021c344051a ("VSOCK: Introduce VM Sockets")
Tested-by: Wupeng Ma <redacted>
Signed-off-by: Nguyen Dinh Phi <redacted>
---
net/vmw_vsock/af_vsock.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help