All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next 0/3] Refactorings on af_inet pernet initialization
@ 2018-09-20  9:11 Kirill Tkhai
  2018-09-20  9:11 ` [PATCH 1/3] net: Remove inet_exit_net() Kirill Tkhai
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Kirill Tkhai @ 2018-09-20  9:11 UTC (permalink / raw)
  To: davem, xiyou.wangcong, yoshfuji, ktkhai, avagin, edumazet,
	ebiederm, netdev

This patch set makes several cleanups around inet_init_net().

---

Cong Wang (1):
      ipv4: initialize ra_mutex in inet_init_net()

Kirill Tkhai (2):
      net: Remove inet_exit_net()
      net: Register af_inet_ops earlier


 net/core/net_namespace.c |    1 -
 net/ipv4/af_inet.c       |   13 +++++--------
 2 files changed, 5 insertions(+), 9 deletions(-)

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

* [PATCH 1/3] net: Remove inet_exit_net()
  2018-09-20  9:11 [PATCH net-next 0/3] Refactorings on af_inet pernet initialization Kirill Tkhai
@ 2018-09-20  9:11 ` Kirill Tkhai
  2018-09-20  9:12 ` [PATCH 2/3] net: Register af_inet_ops earlier Kirill Tkhai
  2018-09-20  9:12 ` [PATCH 3/3] ipv4: initialize ra_mutex in inet_init_net() Kirill Tkhai
  2 siblings, 0 replies; 6+ messages in thread
From: Kirill Tkhai @ 2018-09-20  9:11 UTC (permalink / raw)
  To: davem, xiyou.wangcong, yoshfuji, ktkhai, avagin, edumazet,
	ebiederm, netdev

This function does nothing, and since ops_exit_list()
checks for NULL ->exit method, we do not need stub here.

Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
---
 net/ipv4/af_inet.c |    5 -----
 1 file changed, 5 deletions(-)

diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c
index 1fbe2f815474..f4ecbe0aaf1a 100644
--- a/net/ipv4/af_inet.c
+++ b/net/ipv4/af_inet.c
@@ -1821,13 +1821,8 @@ static __net_init int inet_init_net(struct net *net)
 	return 0;
 }
 
-static __net_exit void inet_exit_net(struct net *net)
-{
-}
-
 static __net_initdata struct pernet_operations af_inet_ops = {
 	.init = inet_init_net,
-	.exit = inet_exit_net,
 };
 
 static int __init init_inet_pernet_ops(void)

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

* [PATCH 2/3] net: Register af_inet_ops earlier
  2018-09-20  9:11 [PATCH net-next 0/3] Refactorings on af_inet pernet initialization Kirill Tkhai
  2018-09-20  9:11 ` [PATCH 1/3] net: Remove inet_exit_net() Kirill Tkhai
@ 2018-09-20  9:12 ` Kirill Tkhai
  2018-09-20 17:03   ` Cong Wang
  2018-09-20  9:12 ` [PATCH 3/3] ipv4: initialize ra_mutex in inet_init_net() Kirill Tkhai
  2 siblings, 1 reply; 6+ messages in thread
From: Kirill Tkhai @ 2018-09-20  9:12 UTC (permalink / raw)
  To: davem, xiyou.wangcong, yoshfuji, ktkhai, avagin, edumazet,
	ebiederm, netdev

This function just initializes locks and defaults.
Let register it before other pernet operation,
since some of them potentially may relay on that.

Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
---
 net/ipv4/af_inet.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c
index f4ecbe0aaf1a..bbd3a072ffea 100644
--- a/net/ipv4/af_inet.c
+++ b/net/ipv4/af_inet.c
@@ -1938,6 +1938,9 @@ static int __init inet_init(void)
 	for (q = inetsw_array; q < &inetsw_array[INETSW_ARRAY_LEN]; ++q)
 		inet_register_protosw(q);
 
+	if (init_inet_pernet_ops())
+		pr_crit("%s: Cannot init ipv4 inet pernet ops\n", __func__);
+
 	/*
 	 *	Set the ARP module up
 	 */
@@ -1975,9 +1978,6 @@ static int __init inet_init(void)
 	if (ip_mr_init())
 		pr_crit("%s: Cannot init ipv4 mroute\n", __func__);
 #endif
-
-	if (init_inet_pernet_ops())
-		pr_crit("%s: Cannot init ipv4 inet pernet ops\n", __func__);
 	/*
 	 *	Initialise per-cpu ipv4 mibs
 	 */

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

* [PATCH 3/3] ipv4: initialize ra_mutex in inet_init_net()
  2018-09-20  9:11 [PATCH net-next 0/3] Refactorings on af_inet pernet initialization Kirill Tkhai
  2018-09-20  9:11 ` [PATCH 1/3] net: Remove inet_exit_net() Kirill Tkhai
  2018-09-20  9:12 ` [PATCH 2/3] net: Register af_inet_ops earlier Kirill Tkhai
@ 2018-09-20  9:12 ` Kirill Tkhai
  2018-09-20 17:01   ` Cong Wang
  2 siblings, 1 reply; 6+ messages in thread
From: Kirill Tkhai @ 2018-09-20  9:12 UTC (permalink / raw)
  To: davem, xiyou.wangcong, yoshfuji, ktkhai, avagin, edumazet,
	ebiederm, netdev

From: Cong Wang <xiyou.wangcong@gmail.com>

ra_mutex is a IPv4 specific mutex, it is inside struct netns_ipv4,
but its initialization is in the generic netns code, setup_net().

Move it to IPv4 specific net init code, inet_init_net().

Fixes: d9ff3049739e ("net: Replace ip_ra_lock with per-net mutex")
Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
Acked-by: Kirill Tkhai <ktkhai@virtuozzo.com>
---
 net/core/net_namespace.c |    1 -
 net/ipv4/af_inet.c       |    2 ++
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/net/core/net_namespace.c b/net/core/net_namespace.c
index 670c84b1bfc2..b272ccfcbf63 100644
--- a/net/core/net_namespace.c
+++ b/net/core/net_namespace.c
@@ -308,7 +308,6 @@ static __net_init int setup_net(struct net *net, struct user_namespace *user_ns)
 	net->user_ns = user_ns;
 	idr_init(&net->netns_ids);
 	spin_lock_init(&net->nsid_lock);
-	mutex_init(&net->ipv4.ra_mutex);
 
 	list_for_each_entry(ops, &pernet_list, list) {
 		error = ops_init(ops, net);
diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c
index bbd3a072ffea..d4623144e237 100644
--- a/net/ipv4/af_inet.c
+++ b/net/ipv4/af_inet.c
@@ -1818,6 +1818,8 @@ static __net_init int inet_init_net(struct net *net)
 	net->ipv4.sysctl_igmp_llm_reports = 1;
 	net->ipv4.sysctl_igmp_qrv = 2;
 
+	mutex_init(&net->ipv4.ra_mutex);
+
 	return 0;
 }
 

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

* Re: [PATCH 3/3] ipv4: initialize ra_mutex in inet_init_net()
  2018-09-20  9:12 ` [PATCH 3/3] ipv4: initialize ra_mutex in inet_init_net() Kirill Tkhai
@ 2018-09-20 17:01   ` Cong Wang
  0 siblings, 0 replies; 6+ messages in thread
From: Cong Wang @ 2018-09-20 17:01 UTC (permalink / raw)
  To: Kirill Tkhai
  Cc: David Miller, Hideaki YOSHIFUJI, avagin, Eric Dumazet,
	Eric W. Biederman, Linux Kernel Network Developers

On Thu, Sep 20, 2018 at 2:12 AM Kirill Tkhai <ktkhai@virtuozzo.com> wrote:
>
> From: Cong Wang <xiyou.wangcong@gmail.com>
>
> ra_mutex is a IPv4 specific mutex, it is inside struct netns_ipv4,
> but its initialization is in the generic netns code, setup_net().
>
> Move it to IPv4 specific net init code, inet_init_net().
>
> Fixes: d9ff3049739e ("net: Replace ip_ra_lock with per-net mutex")
> Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
> Acked-by: Kirill Tkhai <ktkhai@virtuozzo.com>

I regret for wasting my time on this, so:

Nacked-by: Cong Wang <xiyou.wangcong@gmail.com>

Let's just leave the current code as it is.

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

* Re: [PATCH 2/3] net: Register af_inet_ops earlier
  2018-09-20  9:12 ` [PATCH 2/3] net: Register af_inet_ops earlier Kirill Tkhai
@ 2018-09-20 17:03   ` Cong Wang
  0 siblings, 0 replies; 6+ messages in thread
From: Cong Wang @ 2018-09-20 17:03 UTC (permalink / raw)
  To: Kirill Tkhai
  Cc: David Miller, Hideaki YOSHIFUJI, avagin, Eric Dumazet,
	Eric W. Biederman, Linux Kernel Network Developers

On Thu, Sep 20, 2018 at 2:12 AM Kirill Tkhai <ktkhai@virtuozzo.com> wrote:
>
> This function just initializes locks and defaults.
> Let register it before other pernet operation,
> since some of them potentially may relay on that.
>
> Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>

It adds no benefits but potential risks on error path
ordering, it is never late to bring this up again when any
future change needs it, until that:

Nacked-by: Cong Wang <xiyou.wangcong@gmail.com>

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

end of thread, other threads:[~2018-09-20 22:48 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-09-20  9:11 [PATCH net-next 0/3] Refactorings on af_inet pernet initialization Kirill Tkhai
2018-09-20  9:11 ` [PATCH 1/3] net: Remove inet_exit_net() Kirill Tkhai
2018-09-20  9:12 ` [PATCH 2/3] net: Register af_inet_ops earlier Kirill Tkhai
2018-09-20 17:03   ` Cong Wang
2018-09-20  9:12 ` [PATCH 3/3] ipv4: initialize ra_mutex in inet_init_net() Kirill Tkhai
2018-09-20 17:01   ` Cong Wang

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.