diff --git a/[refs] b/[refs] index b9a8670fae5e..6071fbce2600 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 8d6d840683228ebded898a865657394981c82aaa +refs/heads/master: 79ffef1fe213851f44bfccf037170a140e929f85 diff --git a/trunk/include/net/tcp.h b/trunk/include/net/tcp.h index 23f2e98d4b65..cf0694d4ad60 100644 --- a/trunk/include/net/tcp.h +++ b/trunk/include/net/tcp.h @@ -1045,6 +1045,10 @@ static inline bool tcp_prequeue(struct sock *sk, struct sk_buff *skb) if (sysctl_tcp_low_latency || !tp->ucopy.task) return false; + if (skb->len <= tcp_hdrlen(skb) && + skb_queue_len(&tp->ucopy.prequeue) == 0) + return false; + __skb_queue_tail(&tp->ucopy.prequeue, skb); tp->ucopy.memory += skb->truesize; if (tp->ucopy.memory > sk->sk_rcvbuf) {