From patchwork Mon Feb 19 08:48:57 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kirill Tkhai X-Patchwork-Id: 875020 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="K5D4TUuQ"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3zlHVH0QZrz9ryJ for ; Mon, 19 Feb 2018 19:49:11 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752368AbeBSItI (ORCPT ); Mon, 19 Feb 2018 03:49:08 -0500 Received: from mail-eopbgr50132.outbound.protection.outlook.com ([40.107.5.132]:55061 "EHLO EUR03-VE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752228AbeBSItH (ORCPT ); Mon, 19 Feb 2018 03:49:07 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=+KXyh2xUap81HYC+8/KXAhi+k+3GdmZ7TS9zttoHV+s=; b=K5D4TUuQaMFtx6hnjadcP2ZOwh95ogmkmf3S8MjGGl6SIBSCUIUmtPZ259hw12PNC3MZPr5ne+ReBZCDQR8EJyiUFdncv+ialxCkjy5pBiMmxDgKkS/a1Gw86UWQbudYZ+lJXkXW8xLJNFbP2YlBobr/hLspoqK4ddX+ggomweg= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=ktkhai@virtuozzo.com; Received: from localhost.localdomain (195.214.232.6) by HE1PR0801MB1338.eurprd08.prod.outlook.com (2603:10a6:3:39::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.506.18; Mon, 19 Feb 2018 08:49:04 +0000 Subject: [PATCH 04/16] net: Convert icmpv6_sk_ops, ndisc_net_ops and igmp6_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:48:57 +0300 Message-ID: <151903013723.32574.14529761208785320979.stgit@localhost.localdomain> In-Reply-To: <151902976942.32574.10711323959096437995.stgit@localhost.localdomain> References: <151902976942.32574.10711323959096437995.stgit@localhost.localdomain> User-Agent: StGit/0.18 MIME-Version: 1.0 X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: HE1PR07CA0044.eurprd07.prod.outlook.com (2603:10a6:7:66::30) To HE1PR0801MB1338.eurprd08.prod.outlook.com (2603:10a6:3:39::28) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: fd3d3034-cbb6-42b5-437a-08d57775a1e4 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4604075)(4534165)(7168020)(4627221)(201703031133081)(201702281549075)(2017052603307)(7153060)(7193020); SRVR:HE1PR0801MB1338; X-Microsoft-Exchange-Diagnostics: 1; HE1PR0801MB1338; 3:4phiNr7WVg3s/ylUHNua86qllD4QwjQbJNPbICHqBbwT/Q8ua83860zp7Jf1W8duy5umNSKNZt4DuXYAHnWWJuR1G3NdK8cXCIOJ+qyjuF8IEDSd5AYWT1Zsd8OvlJpS52ZvLoStjT1U8PjrVEflbXXoOpl0gJmgTD/+AzcG/lgzhqug+Rz1ETv4pHAwsN7KCwVJfnFqA05GeQ1mTdYJsuv9s1N1i2pjMqKfXCSh4ZMpsusdo5LyiKvVo02FYr3H; 25:eyIHY0g1UWvVKdl5w76s4LI1oRsAcJNCmP0I/bF3fkorx6Po6J5Uhw7leYeTVeqvrzDJiPp5wTotpBhQvVQgIKXmXaQ6h1HzqMFZzYkfHHPvuqioHV2p0eUs8Sj6BGfhs37BM87+gjrHbi/IR25Cky2XhQoAlivSXOCNUg1mJjelmjxcwczvBR5JIi6WHdkKE8OhtkUNXdYM4tY+JEXsIa/ZcmQ0XAhAZoEZbzNT2ydCQ0cHaCMt4+MCHZ2lVjZ7wWXUGPa/Iu6CjFRpekCn6zO76KoqamQi3h88BXhnJ4qPcUYqlSjTrq4WV3lzPwRZnvdVQh67wAIkSVJVpMpvYw==; 31:5E6xkB9pqhEkwe4dwa6CLGtMU3qxV7X1o/2XIJfDfxCffHyx+8tB6zECnnOcwiHY4O/AqiYgugeQAkBlOoHVQGkpdAc/PHow4E0V9ItxLwar0bokXNI+wvFT/v0Ap+5cWPOqiB9sbEcIy7KP67225U85PYRBgk0SYjkSUMOaxdYlkjN3GIYR9fWsUHpegra3FRY9QdAnV4Me2CGaugbf7E2U1YrVZElnNNJEuP70S0U= X-MS-TrafficTypeDiagnostic: HE1PR0801MB1338: X-Microsoft-Exchange-Diagnostics: 1; HE1PR0801MB1338; 20:L598pjbIKGPvQrUF5GS7fTXHXcsqg9cFzF/bG7UfLBwK6U0wX0M+jj+mIQ34nMgE/BsN2Q4gtCDjfI8Uz4hL+L+FqIr3HBNcL9sjU1cMnpcyaZQNqnsjnqBTlyaRCsa0e9jYVgZntcq6qbeD+rIH9kMbc2dDjGKr/8Vbbz52Jg72Fm4A13PjwugsVVlaoOA41sM5hTcVqfTO5Tlv4KuCHvpBrfXxqyaCluSjiksd19EoXBmSCuJAhQl4vKbaL9TwGuv1FHVTqT8lRoeF++7+iRyyJb4wgEE9dKz/RR6G4SAp0LWxABwej0p6JQg55V5oQqI92uraJIq9IR2xrCLsYZX/nysGdBvFfJ24FcrpMSWXJ9uVHAAN0/pXEvNV5qsWPzKOwcIkkWBtH/xQRkZk6RpEXGKmXAze7e3GwOPgnfgKwVQpeNpnqp/umOUUTlgDX1uM+6kyxUQaQUTHQ3GZMxMNjXOYluNJVmiXvSpBoY0CQGQ8zyIWVRL5STWdAarH; 4:fwOrbb33YGNy5RvgAyH9AAgyJo/icqZMfbVGpjVeE5+SWBcni+p9UbGtwr40DFE0xjoVl8sJAHKV9wTxiLhoOUtYu+5ezKMIs94aN7tlq841dnVmOI5ARU81zgaTKd2T+mBpIg3wERHJKN/iOZp39bO9fO+HaesULrotRIKGWEsqOnPvQAzMyM4B5tipdzJ+4C318an+UgzNSCcJLHYzk5NWJnTwVJ+fmUV/i2Oty2gkFffELxWzXmHSZPvGMrCbcZ6xqvQznm2wJnEjuPXEeA== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040501)(2401047)(8121501046)(5005006)(10201501046)(93006095)(93001095)(3231101)(944501161)(3002001)(6041288)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123562045)(20161123558120)(20161123564045)(6072148)(201708071742011); SRVR:HE1PR0801MB1338; BCL:0; PCL:0; RULEID:; SRVR:HE1PR0801MB1338; X-Forefront-PRVS: 0588B2BD96 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(6069001)(376002)(39380400002)(366004)(346002)(396003)(39840400004)(189003)(199004)(61506002)(47776003)(66066001)(106356001)(6116002)(3846002)(2906002)(8676002)(81156014)(81166006)(8936002)(7416002)(83506002)(76176011)(7696005)(52116002)(25786009)(50466002)(68736007)(58126008)(103116003)(16526019)(7736002)(305945005)(2486003)(23676004)(316002)(186003)(26005)(97736004)(33896004)(575784001)(55236004)(86362001)(6506007)(386003)(5660300001)(2950100002)(478600001)(9686003)(230700001)(53936002)(6666003)(55016002)(105586002)(921003)(1121003); DIR:OUT; SFP:1102; SCL:1; SRVR:HE1PR0801MB1338; H:localhost.localdomain; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: virtuozzo.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?q?1=3BHE1PR0801MB1338=3B23=3A4J?= =?utf-8?q?Cq6uspOG5hlUk8C2butPCQmyMmf3UlUtQc0W2RibNCkIqS/AUzx5cvTD?= =?utf-8?q?87ADyFbTeeOdDJgv+3wuYfE/Zts7ZnsDYxQjDXszrNZ28WxMVaFEi2HC?= =?utf-8?q?NhpbIhW9KdzEKEKYTzn5OQP57F5iuR0Z2laQxFsWC3NPoumC8ZMcPTaa?= =?utf-8?q?PixHpfNyXjZmtxapFxV+jGInZJT9gMig2I5ws40q0heDIGJ47x46AD2n?= =?utf-8?q?ueaE59SJFGLgrdN3+xEW+tAdo4NV+2u0GDf2uhDftLXVNK/hiwQeNNtt?= =?utf-8?q?KGKaSYAAh5aDos9YqQbZtgUW/Ludku9Lf+6PS6u1Is5GKb458Um1ZkME?= =?utf-8?q?N8skq44ITuOr5yvNrOriQxSg17TiAtpDSTJZprOppQiui40zE6dpE6gq?= =?utf-8?q?+doEKBMj0KQtuvoVV/Sirtsvc7bHswPmN4+J0AybMZpzIyZ8R+NiMDYl?= =?utf-8?q?efkWcP/y6wo4W1YCjJr93URAQoZyRE0m38Z19qN3wRoAGN2t9+8jYYCv?= =?utf-8?q?lZ3dUb1HGmgFizqHlKRfHSTS+57/c/F//Bci3FYYXbHmyVHDWtVIpFlz?= =?utf-8?q?48ShJql1xcPnNJlQV2k5L9z3xqggNEXPHWD8bOiBt4Uw2DqglDucXw2X?= =?utf-8?q?tV1tqd4M+dqwi5TG04FQiSRzPUf5og+0Rk537kpLLBAGbYQ4Nh8bpZa1?= =?utf-8?q?cEfvD3OeO+vj1ULZpoyIwf7G6+SH1wP/7t9tK9+g8K1i8PgIvszYvDrE?= =?utf-8?q?HEuXH8hR9ZYfzgU77o0at8gStCAeqdJTG7ShnhCptXPY/I9AODl6waIb?= =?utf-8?q?uTnQTOoApQUbpXsWQDKtmMREYwerSjQrZgkqEwAzHRGkmuz0VAvC5cxR?= =?utf-8?q?2w/QshpM0ZeEgRnsHdAdg4jqOw2QMInqIVrSVM/hhvFcIR7vCydxUoZ7?= =?utf-8?q?uPsgPfBjKRK1iiR13bJ3oDRjvb8TaM9Ivmltj3dlp+BiUPL0VZvOXUm0?= =?utf-8?q?MoGROyiJtnHaTIGkebVlTphGptbKLOH2nfYZsN1MHPBcISMKtHhVtCH+?= =?utf-8?q?rAZVduezvWw00MgRnEx7C9nBm1FaA4y9cIFP9fy2oAqJPg/uorFeMHiW?= =?utf-8?q?TnN8GHcIzwuf2c7aCj0ar/tgKUjKkJmb3x9+86F+hi9o5BJsNUxgglM+?= =?utf-8?q?l47hnajxGtI/aU7YLipjjn5JN3Fc5cWV80buGaRby8S9Tk+zHniCdVuR?= =?utf-8?q?MyOSQTCXiBZetaNYjlLCjIVpxUdid6bu18d7bMRRVxCMinj1few4dLD1?= =?utf-8?q?JI/C74aV4MFNP6Np2hf871AV/gXSlrWjp7Ch8mzjd+z2qZ?= X-Microsoft-Exchange-Diagnostics: 1; HE1PR0801MB1338; 6:bpQIjTvtzTNnyYqSEaYBlxnSCI7Id1zwnXXo9NbIKut1p3D6nwJv4jUPeDKnpTjwAA8EprPsEu0LXwGZWzVdSZjdkInGNFKY+MINN91o+DJA6Up+L4TXzMUQxwPvOVnWmmKgGgR7q7HbtuA/p0QuUaKZPvcNVa/xcvmx5+oHuHifMBAunHRb6vv1OFeNBWwvrDrbQU2kGegHXOoRyJAGgxBIoCrkD1ctMpHYOltppZzya9h4SAsF3viPmNOTPVmagueIL0GR7O4HO2Zt44YEVwcPOLiwQF0kFr8iUKZ2+DiJE5MubUWToBHSPQxRpcFiekR6b2o/6NmoyWLkrQJbpDMQRkwCXzW/kYG//3Ypbd4=; 5:Gc177eWZiit9Wda4dJFMqIEW7qm7+BiGajGQ0os8t+3U05KcKAPeqIq4tKaz53XaMOW4MG4wwQ3/eVvxynUcJk1K06RgrXS26t/UBbknkR2wVCikYTak36WkC4YaGweJZSDIry1uqLgj6B3lZIyjwQY0XnbIkuJfYIhTziPPEW8=; 24:wk6wNOGdGM4nDcMn44iVKYbNR6t74lMqs0+Ko31gCxv55UiLSggT/f4RGCu25ocFCRw8EImr9SBAs0FwK6gs3jgmHKzu3jEpKP7lKLK+F74=; 7:mXrcIUe5fCyqYCEk6LWYeFtlXwcFTzjjQBuALCZEcfrr97fHz+aT9pvYFgn3sVDp4FUjpmdIf79Pq0fBWIuSDD7hocYdObHsdgvPCg5lVV88Ky0yupMahCUL0zMmRys9FJ8OjvdEvBNfUP+ffRGA+EOLnEr9vHEFtlSI3h6iRh0alG0xEqyskcvx3b/Rx4oT4VpKX35DmhH46i3ti4Boo2AUigHk7Ph2GWlQf3o/EVaYgOqZ4fEC1wdIYtFLmrGK SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; HE1PR0801MB1338; 20:4bbBeIW5QlNVNItFeyjuc+DhQ5siGL+xpIigZ6318tRY76RXubioA2QRGFj5LjQ/K8sb4COG1MCFHeQfgjGOvLIV0Oon0qJBx0IZ+J0kqbwu3EqNm8LfFwqQygIGF0vCcwIcQh4fid9syOIJWrfWEgVQ4og1Rc96QZ8O/F4r6G8= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Feb 2018 08:49:04.9700 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: fd3d3034-cbb6-42b5-437a-08d57775a1e4 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0801MB1338 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org These pernet_operations create and destroy net::ipv6.icmp_sk socket, used to send ICMP or error reply. Nobody can dereference the socket to handle a packet before net is initialized, as there is no routing; nobody can do that in parallel with exit, as all of devices are moved to init_net or destroyed and there are no packets it-flight. So, it's possible to mark these pernet_operations as async. The same for ndisc_net_ops and for igmp6_net_ops. The last one also creates and destroys /proc entries. Signed-off-by: Kirill Tkhai --- net/ipv6/icmp.c | 1 + net/ipv6/mcast.c | 1 + net/ipv6/ndisc.c | 1 + 3 files changed, 3 insertions(+) diff --git a/net/ipv6/icmp.c b/net/ipv6/icmp.c index 6ae5dd3f4d0d..4fa4f1b150a4 100644 --- a/net/ipv6/icmp.c +++ b/net/ipv6/icmp.c @@ -997,6 +997,7 @@ static void __net_exit icmpv6_sk_exit(struct net *net) static struct pernet_operations icmpv6_sk_ops = { .init = icmpv6_sk_init, .exit = icmpv6_sk_exit, + .async = true, }; int __init icmpv6_init(void) diff --git a/net/ipv6/mcast.c b/net/ipv6/mcast.c index 9b9d2ff01b35..d9bb933dd5c4 100644 --- a/net/ipv6/mcast.c +++ b/net/ipv6/mcast.c @@ -2997,6 +2997,7 @@ static void __net_exit igmp6_net_exit(struct net *net) static struct pernet_operations igmp6_net_ops = { .init = igmp6_net_init, .exit = igmp6_net_exit, + .async = true, }; int __init igmp6_init(void) diff --git a/net/ipv6/ndisc.c b/net/ipv6/ndisc.c index f61a5b613b52..0a19ce3a6f7f 100644 --- a/net/ipv6/ndisc.c +++ b/net/ipv6/ndisc.c @@ -1882,6 +1882,7 @@ static void __net_exit ndisc_net_exit(struct net *net) static struct pernet_operations ndisc_net_ops = { .init = ndisc_net_init, .exit = ndisc_net_exit, + .async = true, }; int __init ndisc_init(void)