diff options
author | Herbert Xu <herbert@gondor.apana.org.au> | 2009-05-26 14:50:26 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-05-27 06:26:00 -0400 |
commit | 30a3ae30c775e2723f86ef70746ad3cb4404a4c9 (patch) | |
tree | 9a3365e4a2b611930f31674a0162126625adac10 /net/ipv4/tcp.c | |
parent | 4a9a2968a17eae42ef5dffca8b37534c864e30cc (diff) |
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/tcp.c')
-rw-r--r-- | net/ipv4/tcp.c | 2 |
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: | |||
2566 | 2566 | ||
2567 | mss = skb_shinfo(p)->gso_size; | 2567 | mss = skb_shinfo(p)->gso_size; |
2568 | 2568 | ||
2569 | flush |= (len > mss) | !len; | 2569 | flush |= (len - 1) >= mss; |
2570 | flush |= (ntohl(th2->seq) + skb_gro_len(p)) ^ ntohl(th->seq); | 2570 | flush |= (ntohl(th2->seq) + skb_gro_len(p)) ^ ntohl(th->seq); |
2571 | 2571 | ||
2572 | if (flush || skb_gro_receive(head, skb)) { | 2572 | if (flush || skb_gro_receive(head, skb)) { |