Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e316ea62 authored by Eric Dumazet's avatar Eric Dumazet Committed by David S. Miller
Browse files

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: 079096f1 ("tcp/dccp: install syn_recv requests into ehash table")
Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
Reported-by: default avatarBen Lazarus <blazarus@google.com>
Reported-by: default avatarNeal Cardwell <ncardwell@google.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent f6773c5e
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -204,8 +204,6 @@ void dccp_req_err(struct sock *sk, u64 seq)
	 * ICMPs are not backlogged, hence we cannot get an established
	 * socket here.
	 */
	WARN_ON(req->sk);

	if (!between48(seq, dccp_rsk(req)->dreq_iss, dccp_rsk(req)->dreq_gss)) {
		NET_INC_STATS_BH(net, LINUX_MIB_OUTOFWINDOWICMPS);
	} else {
+0 −2
Original line number Diff line number Diff line
@@ -319,8 +319,6 @@ void tcp_req_err(struct sock *sk, u32 seq, bool abort)
	/* ICMPs are not backlogged, hence we cannot get
	 * an established socket here.
	 */
	WARN_ON(req->sk);

	if (seq != tcp_rsk(req)->snt_isn) {
		NET_INC_STATS_BH(net, LINUX_MIB_OUTOFWINDOWICMPS);
	} else if (abort) {