diff options
| author | Jason Xing <[email protected]> | 2024-02-26 03:22:27 +0000 |
|---|---|---|
| committer | David S. Miller <[email protected]> | 2024-02-28 10:39:22 +0000 |
| commit | ee01defe25bad09a37b68dd051a7e931d1e4cd91 (patch) | |
| tree | 08e0c980a35ca58fd8168fc4811c97f84c421e42 /net/ipv4/tcp_ipv4.c | |
| parent | tcp: make the dropreason really work when calling tcp_rcv_state_process() (diff) | |
| download | kernel-ee01defe25bad09a37b68dd051a7e931d1e4cd91.tar.gz kernel-ee01defe25bad09a37b68dd051a7e931d1e4cd91.zip | |
tcp: make dropreason in tcp_child_process() work
It's time to let it work right now. We've already prepared for this:)
Signed-off-by: Jason Xing <[email protected]>
Reviewed-by: Eric Dumazet <[email protected]>
Reviewed-by: David Ahern <[email protected]>
Reviewed-by: Kuniyuki Iwashima <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Diffstat (limited to 'net/ipv4/tcp_ipv4.c')
| -rw-r--r-- | net/ipv4/tcp_ipv4.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c index c79e25549972..a22ee5838751 100644 --- a/net/ipv4/tcp_ipv4.c +++ b/net/ipv4/tcp_ipv4.c @@ -1907,7 +1907,6 @@ int tcp_v4_do_rcv(struct sock *sk, struct sk_buff *skb) return 0; } - reason = SKB_DROP_REASON_NOT_SPECIFIED; if (tcp_checksum_complete(skb)) goto csum_err; @@ -1917,7 +1916,8 @@ int tcp_v4_do_rcv(struct sock *sk, struct sk_buff *skb) if (!nsk) return 0; if (nsk != sk) { - if (tcp_child_process(sk, nsk, skb)) { + reason = tcp_child_process(sk, nsk, skb); + if (reason) { rsk = nsk; goto reset; } @@ -2276,10 +2276,12 @@ process: if (nsk == sk) { reqsk_put(req); tcp_v4_restore_cb(skb); - } else if (tcp_child_process(sk, nsk, skb)) { - tcp_v4_send_reset(nsk, skb); - goto discard_and_relse; } else { + drop_reason = tcp_child_process(sk, nsk, skb); + if (drop_reason) { + tcp_v4_send_reset(nsk, skb); + goto discard_and_relse; + } sock_put(sk); return 0; } |
