Patchwork net: some optimizations in af_inet

login
register
mail settings
Submitter Eric Dumazet
Date Nov. 22, 2008, 7:06 a.m.
Message ID <4927AF61.40002@cosmosbay.com>
Download mbox | patch
Permalink /patch/10199/
State Accepted
Delegated to: David Miller
Headers show

Comments

Eric Dumazet - Nov. 22, 2008, 7:06 a.m.
1) Use eq_net() in inet_netns_ok() to speedup socket creation if !CONFIG_NET_NS

2) Reorder the tests about inet_ehash_secret generation (once only)
   Use the unlikely() macro when testing if inet_ehash_secret already generated.

Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
David Miller - Nov. 23, 2008, 11:42 p.m.
From: Eric Dumazet <dada1@cosmosbay.com>
Date: Sat, 22 Nov 2008 08:06:09 +0100

> 1) Use eq_net() in inet_netns_ok() to speedup socket creation if !CONFIG_NET_NS
> 
> 2) Reorder the tests about inet_ehash_secret generation (once only)
>    Use the unlikely() macro when testing if inet_ehash_secret already generated.
> 
> Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>

Applied, thanks Eric.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c
index b1462e8..fe03048 100644
--- a/net/ipv4/af_inet.c
+++ b/net/ipv4/af_inet.c
@@ -245,7 +245,7 @@  static inline int inet_netns_ok(struct net *net, int protocol)
 	int hash;
 	struct net_protocol *ipprot;
 
-	if (net == &init_net)
+	if (net_eq(net, &init_net))
 		return 1;
 
 	hash = protocol & (MAX_INET_PROTOS - 1);
@@ -272,10 +272,9 @@  static int inet_create(struct net *net, struct socket *sock, int protocol)
 	int try_loading_module = 0;
 	int err;
 
-	if (sock->type != SOCK_RAW &&
-	    sock->type != SOCK_DGRAM &&
-	    !inet_ehash_secret)
-		build_ehash_secret();
+	if (unlikely(!inet_ehash_secret))
+		if (sock->type != SOCK_RAW && sock->type != SOCK_DGRAM)
+			build_ehash_secret();
 
 	sock->state = SS_UNCONNECTED;