-
- Downloads
tcp: allow again tcp_disconnect() when threads are waiting
[ Upstream commit 419ce133 ] As reported by Tom, .NET and applications build on top of it rely on connect(AF_UNSPEC) to async cancel pending I/O operations on TCP socket. The blamed commit below caused a regression, as such cancellation can now fail. As suggested by Eric, this change addresses the problem explicitly causing blocking I/O operation to terminate immediately (with an error) when a concurrent disconnect() is executed. Instead of tracking the number of threads blocked on a given socket, track the number of disconnect() issued on such socket. If such counter changes after a blocking operation releasing and re-acquiring the socket lock, error out the current operation. Fixes: 4faeee0c ("tcp: deny tcp_disconnect() when threads are waiting") Reported-by:Tom Deseyn <tdeseyn@redhat.com> Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1886305 Suggested-by:
Eric Dumazet <edumazet@google.com> Signed-off-by:
Paolo Abeni <pabeni@redhat.com> Reviewed-by:
Eric Dumazet <edumazet@google.com> Link: https://lore.kernel.org/r/f3b95e47e3dbed840960548aebaa8d954372db41.1697008693.git.pabeni@redhat.com Signed-off-by:
Jakub Kicinski <kuba@kernel.org> Signed-off-by:
Sasha Levin <sashal@kernel.org>
parent
76ccb95d
No related branches found
No related tags found
Showing
- drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_io.c 29 additions, 7 deletionsdrivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_io.c
- include/net/sock.h 4 additions, 6 deletionsinclude/net/sock.h
- net/core/stream.c 7 additions, 5 deletionsnet/core/stream.c
- net/ipv4/af_inet.c 8 additions, 2 deletionsnet/ipv4/af_inet.c
- net/ipv4/inet_connection_sock.c 0 additions, 1 deletionnet/ipv4/inet_connection_sock.c
- net/ipv4/tcp.c 8 additions, 8 deletionsnet/ipv4/tcp.c
- net/ipv4/tcp_bpf.c 4 additions, 0 deletionsnet/ipv4/tcp_bpf.c
- net/mptcp/protocol.c 0 additions, 7 deletionsnet/mptcp/protocol.c
- net/tls/tls_main.c 7 additions, 3 deletionsnet/tls/tls_main.c
- net/tls/tls_sw.c 13 additions, 6 deletionsnet/tls/tls_sw.c
Loading
Please register or sign in to comment