|
@@ -1682,8 +1682,10 @@ process:
|
|
if (!tcp_prequeue(sk, skb))
|
|
if (!tcp_prequeue(sk, skb))
|
|
ret = tcp_v4_do_rcv(sk, skb);
|
|
ret = tcp_v4_do_rcv(sk, skb);
|
|
}
|
|
}
|
|
- } else
|
|
|
|
- sk_add_backlog(sk, skb);
|
|
|
|
|
|
+ } else if (sk_add_backlog_limited(sk, skb)) {
|
|
|
|
+ bh_unlock_sock(sk);
|
|
|
|
+ goto discard_and_relse;
|
|
|
|
+ }
|
|
bh_unlock_sock(sk);
|
|
bh_unlock_sock(sk);
|
|
|
|
|
|
sock_put(sk);
|
|
sock_put(sk);
|