Netdev List
 help / color / mirror / Atom feed
From: Kirill Tkhai <ktkhai@virtuozzo.com>
To: davem@davemloft.net, avagin@virtuozzo.com, pablo@netfilter.org,
	kadlec@blackhole.kfki.hu, fw@strlen.de, yoshfuji@linux-ipv6.org,
	afaerber@suse.de, steffen.klassert@secunet.com,
	herbert@gondor.apana.org.au, johannes@sipsolutions.net,
	netdev@vger.kernel.org, ktkhai@virtuozzo.com
Subject: [PATCH 13/16] net: Convert fib6_net_ops, ipv6_addr_label_ops and ip6_segments_ops
Date: Mon, 19 Feb 2018 11:50:28 +0300	[thread overview]
Message-ID: <151903022826.32574.3763121725718509932.stgit@localhost.localdomain> (raw)
In-Reply-To: <151902976942.32574.10711323959096437995.stgit@localhost.localdomain>

These pernet_operations register and unregister tables
and lists for packets forwarding. All of the entities
are per-net. Init methods makes simple initializations,
and since net is not visible for foreigners at the time
it is working, it can't race with anything. Exit method
is executed when there are only local devices, and there
mustn't be packets in-flight. Also, it looks like no one
pernet_operations want to send ipv6 packets to foreign
net. The same reasons are for ipv6_addr_label_ops and
ip6_segments_ops. So, we are able to mark all them as
async.

Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
---
 net/ipv6/addrlabel.c |    1 +
 net/ipv6/ip6_fib.c   |    1 +
 net/ipv6/seg6.c      |    1 +
 3 files changed, 3 insertions(+)

diff --git a/net/ipv6/addrlabel.c b/net/ipv6/addrlabel.c
index 1d6ced37ad71..ba2e63633370 100644
--- a/net/ipv6/addrlabel.c
+++ b/net/ipv6/addrlabel.c
@@ -344,6 +344,7 @@ static void __net_exit ip6addrlbl_net_exit(struct net *net)
 static struct pernet_operations ipv6_addr_label_ops = {
 	.init = ip6addrlbl_net_init,
 	.exit = ip6addrlbl_net_exit,
+	.async = true,
 };
 
 int __init ipv6_addr_label_init(void)
diff --git a/net/ipv6/ip6_fib.c b/net/ipv6/ip6_fib.c
index 92b8d8c75eed..cab95cf3b39f 100644
--- a/net/ipv6/ip6_fib.c
+++ b/net/ipv6/ip6_fib.c
@@ -2160,6 +2160,7 @@ static void fib6_net_exit(struct net *net)
 static struct pernet_operations fib6_net_ops = {
 	.init = fib6_net_init,
 	.exit = fib6_net_exit,
+	.async = true,
 };
 
 int __init fib6_init(void)
diff --git a/net/ipv6/seg6.c b/net/ipv6/seg6.c
index 7f5621d09571..c3f13c3bd8a9 100644
--- a/net/ipv6/seg6.c
+++ b/net/ipv6/seg6.c
@@ -395,6 +395,7 @@ static void __net_exit seg6_net_exit(struct net *net)
 static struct pernet_operations ip6_segments_ops = {
 	.init = seg6_net_init,
 	.exit = seg6_net_exit,
+	.async = true,
 };
 
 static const struct genl_ops seg6_genl_ops[] = {

  parent reply	other threads:[~2018-02-19  8:50 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-19  8:47 [PATCH 00/16] Converting pernet_operations (part #2) Kirill Tkhai
2018-02-19  8:48 ` [PATCH 01/16] net: Convert inet6_net_ops Kirill Tkhai
2018-02-19  8:48 ` [PATCH 02/16] net: Convert cfg80211_pernet_ops Kirill Tkhai
2018-02-19  8:48 ` [PATCH 03/16] net: Convert ip6mr_net_ops Kirill Tkhai
2018-02-19  8:48 ` [PATCH 04/16] net: Convert icmpv6_sk_ops, ndisc_net_ops and igmp6_net_ops Kirill Tkhai
2018-02-19  8:49 ` [PATCH 05/16] net: Convert raw6_net_ops, udplite6_net_ops, ipv6_proc_ops, if6_proc_net_ops and ip6_route_net_late_ops Kirill Tkhai
2018-02-19  8:49 ` [PATCH 06/16] net: Convert ipv6_inetpeer_ops Kirill Tkhai
2018-02-19  8:49 ` [PATCH 07/16] net: Convert fib6_rules_net_ops Kirill Tkhai
2018-02-19  8:49 ` [PATCH 08/16] net: Convert tcpv6_net_ops Kirill Tkhai
2018-02-19  8:49 ` [PATCH 09/16] net: Convert ipv6_sysctl_net_ops Kirill Tkhai
2018-02-19  8:49 ` [PATCH 10/16] net: Convert ping_v6_net_ops Kirill Tkhai
2018-02-19  8:50 ` [PATCH 11/16] net: Convert ip6_flowlabel_net_ops Kirill Tkhai
2018-02-19  8:50 ` [PATCH 12/16] net: Convert xfrm6_net_ops Kirill Tkhai
2018-02-19  8:50 ` Kirill Tkhai [this message]
2018-02-19  8:50 ` [PATCH 14/16] net: Convert ip6_frags_ops Kirill Tkhai
2018-02-19  8:50 ` [PATCH 15/16] net: Convert ip_tables_net_ops, udplite6_net_ops and xt_net_ops Kirill Tkhai
2018-02-19  8:50 ` [PATCH 16/16] net: Convert iptable_filter_net_ops Kirill Tkhai
2018-02-19 13:51 ` [PATCH 00/16] Converting pernet_operations (part #2) Kirill Tkhai
2018-02-19 19:22 ` David Miller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=151903022826.32574.3763121725718509932.stgit@localhost.localdomain \
    --to=ktkhai@virtuozzo.com \
    --cc=afaerber@suse.de \
    --cc=avagin@virtuozzo.com \
    --cc=davem@davemloft.net \
    --cc=fw@strlen.de \
    --cc=herbert@gondor.apana.org.au \
    --cc=johannes@sipsolutions.net \
    --cc=kadlec@blackhole.kfki.hu \
    --cc=netdev@vger.kernel.org \
    --cc=pablo@netfilter.org \
    --cc=steffen.klassert@secunet.com \
    --cc=yoshfuji@linux-ipv6.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox