summaryrefslogtreecommitdiffstats
path: root/net/ipv4
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2009-05-26 18:50:26 +0000
committerDavid S. Miller <davem@davemloft.net>2009-05-27 03:26:00 -0700
commit30a3ae30c775e2723f86ef70746ad3cb4404a4c9 (patch)
tree9a3365e4a2b611930f31674a0162126625adac10 /net/ipv4
parent4a9a2968a17eae42ef5dffca8b37534c864e30cc (diff)
downloadlinux-30a3ae30c775e2723f86ef70746ad3cb4404a4c9.tar.gz
linux-30a3ae30c775e2723f86ef70746ad3cb4404a4c9.tar.bz2
linux-30a3ae30c775e2723f86ef70746ad3cb4404a4c9.zip
tcp: Optimise len/mss comparison
Instead of checking len > mss || len == 0, we can accomplish both by checking (len - 1) > mss using the unsigned wraparound. At nearly a million times a second, this might just help. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4')
-rw-r--r--net/ipv4/tcp.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
index 313960e4cfdc..68342d431896 100644
--- a/net/ipv4/tcp.c
+++ b/net/ipv4/tcp.c
@@ -2566,7 +2566,7 @@ found:
mss = skb_shinfo(p)->gso_size;
- flush |= (len > mss) | !len;
+ flush |= (len - 1) >= mss;
flush |= (ntohl(th2->seq) + skb_gro_len(p)) ^ ntohl(th->seq);
if (flush || skb_gro_receive(head, skb)) {