From 185856976f70e5cd6c01ceef42dcaaa0927868c2 Mon Sep 17 00:00:00 2001 From: Eric Dumazet Date: Wed, 27 Feb 2013 07:05:03 +0000 Subject: [PATCH] --- yaml --- r: 360785 b: refs/heads/master c: 79ffef1fe213851f44bfccf037170a140e929f85 h: refs/heads/master i: 360783: 159e91fd1e3472ae3396b70942422621b2930336 v: v3 --- [refs] | 2 +- trunk/include/net/tcp.h | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) 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) {