Skip to contentSkip to conversation

: Uninline the __inet_inherit_port call.

PATCH In review Pavel Emelyanov 2 participants 2 messages Apr 17, 2008 – Apr 18, 2008

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 2/2 : Uninline the __inet_inherit_port call.

This deblats ~200 bytes when ipv6 and dccp are 'y'.

Besides, this will ease compilation issues for patches I'm working on to make inet hash tables more scalable wrt net namespaces.

---
 include/net/inet_hashtables.h |   14 +-------------
 net/ipv4/inet_hashtables.c    |   16 ++++++++++++++++
 2 files changed, 17 insertions(+), 13 deletions(-)
include/net/inet_hashtables.h +1 -13
index 5ec91d8..735b926 100644
@@ -221,19 +221,7 @@ static inline int inet_sk_listen_hashfn(const struct sock *sk)
 }
 
 /* Caller must disable local BH processing. */
-static inline void __inet_inherit_port(struct sock *sk, struct sock *child)
-{
-	struct inet_hashinfo *table = sk->sk_prot->h.hashinfo;
-	const int bhash = inet_bhashfn(inet_sk(child)->num, table->bhash_size);
-	struct inet_bind_hashbucket *head = &table->bhash[bhash];
-	struct inet_bind_bucket *tb;
-
-	spin_lock(&head->lock);
-	tb = inet_csk(sk)->icsk_bind_hash;
-	sk_add_bind_node(child, &tb->owners);
-	inet_csk(child)->icsk_bind_hash = tb;
-	spin_unlock(&head->lock);
-}
+extern void __inet_inherit_port(struct sock *sk, struct sock *child);
 
 extern void inet_put_port(struct sock *sk);
 
net/ipv4/inet_hashtables.c +16 -0
index 1612184..2023d37 100644
@@ -92,6 +92,22 @@ void inet_put_port(struct sock *sk)
 
 EXPORT_SYMBOL(inet_put_port);
 
+void __inet_inherit_port(struct sock *sk, struct sock *child)
+{
+	struct inet_hashinfo *table = sk->sk_prot->h.hashinfo;
+	const int bhash = inet_bhashfn(inet_sk(child)->num, table->bhash_size);
+	struct inet_bind_hashbucket *head = &table->bhash[bhash];
+	struct inet_bind_bucket *tb;
+
+	spin_lock(&head->lock);
+	tb = inet_csk(sk)->icsk_bind_hash;
+	sk_add_bind_node(child, &tb->owners);
+	inet_csk(child)->icsk_bind_hash = tb;
+	spin_unlock(&head->lock);
+}
+
+EXPORT_SYMBOL_GPL(__inet_inherit_port);
+
 /*
  * This lock without WQ_FLAG_EXCLUSIVE is good on UP and it can be very bad on SMP.
  * Look, when several writers sleep and reader wakes them up, all but one
Signature · 1 line
1.5.3.4
maintainer
#1 lore raw

From: Pavel Emelyanov <[email protected]>
Date: Thu, 17 Apr 2008 20:02:06 +0400

Quoted 7 lines

This deblats ~200 bytes when ipv6 and dccp are 'y'.

Besides, this will ease compilation issues for patches I'm working on to make inet hash tables more scalable wrt net namespaces.

Also applied, thanks Pavel.