netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] net: code cleanups
@ 2010-09-30  2:24 Changli Gao
  2010-09-30  2:49 ` Joe Perches
  2010-09-30  5:16 ` Eric Dumazet
  0 siblings, 2 replies; 7+ messages in thread
From: Changli Gao @ 2010-09-30  2:24 UTC (permalink / raw)
  To: David S. Miller
  Cc: Alexey Kuznetsov, Pekka Savola (ipv6), James Morris,
	Hideaki YOSHIFUJI, Patrick McHardy, netdev, Changli Gao

Compare operations are more readable, and compilers generate the same code
for the both.

Use the macros fl4_* to shrink the length of the lines.

Signed-off-by: Changli Gao <xiaosuo@gmail.com>
---
 net/ipv4/af_inet.c |    7 +++----
 net/ipv4/route.c   |   27 ++++++++++++---------------
 2 files changed, 15 insertions(+), 19 deletions(-)
diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c
index f581f77..ef26640 100644
--- a/net/ipv4/af_inet.c
+++ b/net/ipv4/af_inet.c
@@ -1338,10 +1338,9 @@ static struct sk_buff **inet_gro_receive(struct sk_buff **head,
 
 		iph2 = ip_hdr(p);
 
-		if ((iph->protocol ^ iph2->protocol) |
-		    (iph->tos ^ iph2->tos) |
-		    ((__force u32)iph->saddr ^ (__force u32)iph2->saddr) |
-		    ((__force u32)iph->daddr ^ (__force u32)iph2->daddr)) {
+		if (iph->protocol != iph2->protocol || iph->tos != iph2->tos ||
+		    (__force u32)iph->saddr != (__force u32)iph2->saddr ||
+		    (__force u32)iph->daddr != (__force u32)iph2->daddr) {
 			NAPI_GRO_CB(p)->same_flow = 0;
 			continue;
 		}
diff --git a/net/ipv4/route.c b/net/ipv4/route.c
index 98beda4..6b00fde 100644
--- a/net/ipv4/route.c
+++ b/net/ipv4/route.c
@@ -683,19 +683,18 @@ static inline bool rt_caching(const struct net *net)
 static inline bool compare_hash_inputs(const struct flowi *fl1,
 					const struct flowi *fl2)
 {
-	return ((((__force u32)fl1->nl_u.ip4_u.daddr ^ (__force u32)fl2->nl_u.ip4_u.daddr) |
-		((__force u32)fl1->nl_u.ip4_u.saddr ^ (__force u32)fl2->nl_u.ip4_u.saddr) |
-		(fl1->iif ^ fl2->iif)) == 0);
+	return (__force u32)fl1->fl4_dst == (__force u32)fl2->fl4_dst &&
+	       (__force u32)fl1->fl4_src == (__force u32)fl2->fl4_src &&
+	       fl1->iif == fl2->iif;
 }
 
 static inline int compare_keys(struct flowi *fl1, struct flowi *fl2)
 {
-	return (((__force u32)fl1->nl_u.ip4_u.daddr ^ (__force u32)fl2->nl_u.ip4_u.daddr) |
-		((__force u32)fl1->nl_u.ip4_u.saddr ^ (__force u32)fl2->nl_u.ip4_u.saddr) |
-		(fl1->mark ^ fl2->mark) |
-		(*(u16 *)&fl1->nl_u.ip4_u.tos ^ *(u16 *)&fl2->nl_u.ip4_u.tos) |
-		(fl1->oif ^ fl2->oif) |
-		(fl1->iif ^ fl2->iif)) == 0;
+	return (__force u32)fl1->fl4_dst == (__force u32)fl2->fl4_dst &&
+	       (__force u32)fl1->fl4_src == (__force u32)fl2->fl4_src &&
+	       fl1->mark == fl2->mark &&
+	       *(u16 *)&fl1->fl4_tos == *(u16 *)&fl2->fl4_tos &&
+	       fl1->oif == fl2->oif && fl1->iif == fl2->iif;
 }
 
 static inline int compare_netns(struct rtable *rt1, struct rtable *rt2)
@@ -2286,12 +2285,10 @@ int ip_route_input_common(struct sk_buff *skb, __be32 daddr, __be32 saddr,
 
 	for (rth = rcu_dereference(rt_hash_table[hash].chain); rth;
 	     rth = rcu_dereference(rth->dst.rt_next)) {
-		if ((((__force u32)rth->fl.fl4_dst ^ (__force u32)daddr) |
-		     ((__force u32)rth->fl.fl4_src ^ (__force u32)saddr) |
-		     (rth->fl.iif ^ iif) |
-		     rth->fl.oif |
-		     (rth->fl.fl4_tos ^ tos)) == 0 &&
-		    rth->fl.mark == skb->mark &&
+		if ((__force u32)rth->fl.fl4_dst == (__force u32)daddr &&
+		    (__force u32)rth->fl.fl4_src == (__force u32)saddr &&
+		    rth->fl.iif == iif && rth->fl.oif == 0 &&
+		    rth->fl.fl4_tos == tos && rth->fl.mark == skb->mark &&
 		    net_eq(dev_net(rth->dst.dev), net) &&
 		    !rt_is_expired(rth)) {
 			if (noref) {

^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2010-09-30  6:31 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-09-30  2:24 [PATCH] net: code cleanups Changli Gao
2010-09-30  2:49 ` Joe Perches
2010-09-30  3:07   ` Changli Gao
2010-09-30  3:13     ` Joe Perches
2010-09-30  5:16 ` Eric Dumazet
2010-09-30  6:09   ` Changli Gao
2010-09-30  6:31     ` Eric Dumazet

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).