diff options
-rw-r--r-- | net/ipv4/tcp_ipv4.c | 6 | ||||
-rw-r--r-- | net/ipv6/tcp_ipv6.c | 6 |
2 files changed, 8 insertions, 4 deletions
diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c index c3588b4fd979..4baf1943b1bd 100644 --- a/net/ipv4/tcp_ipv4.c +++ b/net/ipv4/tcp_ipv4.c | |||
@@ -1682,8 +1682,10 @@ process: | |||
1682 | if (!tcp_prequeue(sk, skb)) | 1682 | if (!tcp_prequeue(sk, skb)) |
1683 | ret = tcp_v4_do_rcv(sk, skb); | 1683 | ret = tcp_v4_do_rcv(sk, skb); |
1684 | } | 1684 | } |
1685 | } else | 1685 | } else if (sk_add_backlog_limited(sk, skb)) { |
1686 | sk_add_backlog(sk, skb); | 1686 | bh_unlock_sock(sk); |
1687 | goto discard_and_relse; | ||
1688 | } | ||
1687 | bh_unlock_sock(sk); | 1689 | bh_unlock_sock(sk); |
1688 | 1690 | ||
1689 | sock_put(sk); | 1691 | sock_put(sk); |
diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c index 6963a6b6763e..c4ea9d5cbfaa 100644 --- a/net/ipv6/tcp_ipv6.c +++ b/net/ipv6/tcp_ipv6.c | |||
@@ -1740,8 +1740,10 @@ process: | |||
1740 | if (!tcp_prequeue(sk, skb)) | 1740 | if (!tcp_prequeue(sk, skb)) |
1741 | ret = tcp_v6_do_rcv(sk, skb); | 1741 | ret = tcp_v6_do_rcv(sk, skb); |
1742 | } | 1742 | } |
1743 | } else | 1743 | } else if (sk_add_backlog_limited(sk, skb)) { |
1744 | sk_add_backlog(sk, skb); | 1744 | bh_unlock_sock(sk); |
1745 | goto discard_and_relse; | ||
1746 | } | ||
1745 | bh_unlock_sock(sk); | 1747 | bh_unlock_sock(sk); |
1746 | 1748 | ||
1747 | sock_put(sk); | 1749 | sock_put(sk); |