aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4/tcp.c
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2009-05-26 18:50:24 +0000
committerDavid S. Miller <davem@davemloft.net>2009-05-27 03:25:57 -0700
commit745898eaf0eb7a04a56dec1188d9148259510863 (patch)
treec4ad29d7bc6e8ceb5a96f68cee363f871b2bf17f /net/ipv4/tcp.c
parentgro: Only use skb_gro_header for completely non-linear packets (diff)
downloadlinux-dev-745898eaf0eb7a04a56dec1188d9148259510863.tar.xz
linux-dev-745898eaf0eb7a04a56dec1188d9148259510863.zip
tcp: Optimise GRO port comparisons
Instead of doing two 16-bit operations for the source/destination ports, we can do one 32-bit operation to take care both. 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.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
index 7a0f0b27bf1f..ff6adecc54c6 100644
--- a/net/ipv4/tcp.c
+++ b/net/ipv4/tcp.c
@@ -2544,7 +2544,7 @@ struct sk_buff **tcp_gro_receive(struct sk_buff **head, struct sk_buff *skb)
th2 = tcp_hdr(p);
- if ((th->source ^ th2->source) | (th->dest ^ th2->dest)) {
+ if (*(u32 *)&th->source ^ *(u32 *)&th2->source) {
NAPI_GRO_CB(p)->same_flow = 0;
continue;
}