From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-eopbgr50100.outbound.protection.outlook.com ([40.107.5.100]:53990 "EHLO EUR03-VE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752410AbeBSItq (ORCPT ); Mon, 19 Feb 2018 03:49:46 -0500 Subject: [PATCH 08/16] net: Convert tcpv6_net_ops From: Kirill Tkhai 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 Date: Mon, 19 Feb 2018 11:49:40 +0300 Message-ID: <151903018050.32574.12595692788084976790.stgit@localhost.localdomain> In-Reply-To: <151902976942.32574.10711323959096437995.stgit@localhost.localdomain> References: <151902976942.32574.10711323959096437995.stgit@localhost.localdomain> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Sender: netdev-owner@vger.kernel.org List-ID: These pernet_operations create and destroy net::ipv6.tcp_sk socket, which is used in tcp_v6_send_response() only. It looks like foreign pernet_operations don't want to set ipv6 connection inside destroyed net, so this socket may be created in destroyed in parallel with anything else. inet_twsk_purge() is also safe for that, as described in patch for tcp_sk_ops. So, it's possible to mark them as async. Signed-off-by: Kirill Tkhai --- net/ipv6/tcp_ipv6.c | 1 + 1 file changed, 1 insertion(+) diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c index 883df0ad5bfe..5425d7b100ee 100644 --- a/net/ipv6/tcp_ipv6.c +++ b/net/ipv6/tcp_ipv6.c @@ -2007,6 +2007,7 @@ static struct pernet_operations tcpv6_net_ops = { .init = tcpv6_net_init, .exit = tcpv6_net_exit, .exit_batch = tcpv6_net_exit_batch, + .async = true, }; int __init tcpv6_init(void)