diff options
author | Eric Dumazet <edumazet@google.com> | 2016-03-17 01:52:15 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-03-17 21:06:40 -0400 |
commit | e316ea62e3203d524ff0239a40c56d3a39ad1b5c (patch) | |
tree | 008b9f5e2820e85f881910bff5e21921eaa260db /net/ipv4/tcp_ipv4.c | |
parent | f6773c5e95a6dc1af82157d4e96e412dee3abf31 (diff) |
tcp/dccp: remove obsolete WARN_ON() in icmp handlers
Now SYN_RECV request sockets are installed in ehash table, an ICMP
handler can find a request socket while another cpu handles an incoming
packet transforming this SYN_RECV request socket into an ESTABLISHED
socket.
We need to remove the now obsolete WARN_ON(req->sk), since req->sk
is set when a new child is created and added into listener accept queue.
If this race happens, the ICMP will do nothing special.
Fixes: 079096f103fa ("tcp/dccp: install syn_recv requests into ehash table")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Reported-by: Ben Lazarus <blazarus@google.com>
Reported-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/tcp_ipv4.c')
-rw-r--r-- | net/ipv4/tcp_ipv4.c | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c index 0b02ef773705..e7528b101e68 100644 --- a/net/ipv4/tcp_ipv4.c +++ b/net/ipv4/tcp_ipv4.c | |||
@@ -319,8 +319,6 @@ void tcp_req_err(struct sock *sk, u32 seq, bool abort) | |||
319 | /* ICMPs are not backlogged, hence we cannot get | 319 | /* ICMPs are not backlogged, hence we cannot get |
320 | * an established socket here. | 320 | * an established socket here. |
321 | */ | 321 | */ |
322 | WARN_ON(req->sk); | ||
323 | |||
324 | if (seq != tcp_rsk(req)->snt_isn) { | 322 | if (seq != tcp_rsk(req)->snt_isn) { |
325 | NET_INC_STATS_BH(net, LINUX_MIB_OUTOFWINDOWICMPS); | 323 | NET_INC_STATS_BH(net, LINUX_MIB_OUTOFWINDOWICMPS); |
326 | } else if (abort) { | 324 | } else if (abort) { |