diff options
author | Herbert Xu <herbert@gondor.apana.org.au> | 2009-05-26 20:50:24 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-05-27 12:25:57 +0200 |
commit | 745898eaf0eb7a04a56dec1188d9148259510863 (patch) | |
tree | c4ad29d7bc6e8ceb5a96f68cee363f871b2bf17f | |
parent | gro: Only use skb_gro_header for completely non-linear packets (diff) | |
download | linux-745898eaf0eb7a04a56dec1188d9148259510863.tar.xz linux-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>
-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 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; } |