These pernet_operations call xt_proto_init() and xt_proto_fini(),
which just register and unregister /proc entries.
They are safe to be marked as async.

Signed-off-by: Kirill Tkhai <ktk...@virtuozzo.com>
---
 net/ipv4/netfilter/arp_tables.c |    1 +
 net/ipv6/netfilter/ip6_tables.c |    1 +
 2 files changed, 2 insertions(+)

diff --git a/net/ipv4/netfilter/arp_tables.c b/net/ipv4/netfilter/arp_tables.c
index e3e420f3ba7b..c36ffce3c812 100644
--- a/net/ipv4/netfilter/arp_tables.c
+++ b/net/ipv4/netfilter/arp_tables.c
@@ -1635,6 +1635,7 @@ static void __net_exit arp_tables_net_exit(struct net 
*net)
 static struct pernet_operations arp_tables_net_ops = {
        .init = arp_tables_net_init,
        .exit = arp_tables_net_exit,
+       .async = true,
 };
 
 static int __init arp_tables_init(void)
diff --git a/net/ipv6/netfilter/ip6_tables.c b/net/ipv6/netfilter/ip6_tables.c
index 62358b93bbac..4de8ac1e5af4 100644
--- a/net/ipv6/netfilter/ip6_tables.c
+++ b/net/ipv6/netfilter/ip6_tables.c
@@ -1928,6 +1928,7 @@ static void __net_exit ip6_tables_net_exit(struct net 
*net)
 static struct pernet_operations ip6_tables_net_ops = {
        .init = ip6_tables_net_init,
        .exit = ip6_tables_net_exit,
+       .async = true,
 };
 
 static int __init ip6_tables_init(void)

Reply via email to