From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1760735AbdKQS2U (ORCPT ); Fri, 17 Nov 2017 13:28:20 -0500 Received: from mail-eopbgr50102.outbound.protection.outlook.com ([40.107.5.102]:10412 "EHLO EUR03-VE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1760699AbdKQS16 (ORCPT ); Fri, 17 Nov 2017 13:27:58 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=ktkhai@virtuozzo.com; Subject: [PATCH RFC 04/25] net: Move mutex_unlock() in cleanup_net() up From: Kirill Tkhai To: davem@davemloft.net, vyasevic@redhat.com, kstewart@linuxfoundation.org, pombredanne@nexb.com, vyasevich@gmail.com, mark.rutland@arm.com, gregkh@linuxfoundation.org, adobriyan@gmail.com, fw@strlen.de, nicolas.dichtel@6wind.com, xiyou.wangcong@gmail.com, roman.kapl@sysgo.com, paul@paul-moore.com, dsahern@gmail.com, daniel@iogearbox.net, lucien.xin@gmail.com, mschiffer@universe-factory.net, rshearma@brocade.com, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, ktkhai@virtuozzo.com, ebiederm@xmission.com, avagin@virtuozzo.com, gorcunov@virtuozzo.com, eric.dumazet@gmail.com, stephen@networkplumber.org, ktkhai@virtuozzo.com Date: Fri, 17 Nov 2017 21:27:49 +0300 Message-ID: <151094326992.20009.18255121392857085479.stgit@localhost.localdomain> In-Reply-To: <151094119999.20009.6955267140148739392.stgit@localhost.localdomain> References: <151094119999.20009.6955267140148739392.stgit@localhost.localdomain> User-Agent: StGit/0.18 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: HE1PR0301CA0005.eurprd03.prod.outlook.com (2603:10a6:3:76::15) To VI1PR0801MB1344.eurprd08.prod.outlook.com (2603:10a6:800:3b::8) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 5366b848-d5b7-4d9e-c16c-08d52de8ebcb X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(4534020)(4602075)(7168020)(4627115)(201703031133081)(201702281549075)(2017052603258);SRVR:VI1PR0801MB1344; X-Microsoft-Exchange-Diagnostics: 1;VI1PR0801MB1344;3:iFht0kOnFlbWKDKFrXKkb+gsVAVdfQLMOpeXcJzLG3BvBkF+pp4kCzbsS2ZpG9K4fTtdTiRkdGPTLH4UV9wY/3k1EsbG88/T6pLA3RuDVvBSnG5sCnNv/UmB2BVEtOJ+mIV9UsxGzONJNdnP55lYPc6A/2Wsq5GxdzklI8Q5lRe8uM6KIgFf2CqceFitCmEL52H7bgyuKbo5e9SoRXoqBdRtGeEr11uMiFaOHKisWKuiUEh5I+gHg+kV8T91j/v4;25:Rwy/GpOUd9Wx3ZPIXtc1OPBrU7KdcMvvKlIWZvX2CIyCqG1nHsLANy+jZKdj81qnf0E3Wk3tGkPWo0XvWEHkO6EXhn2SV7UTauQALkRm+cb9KwG4AU5QY5krrpklhYuTn3PK8tfWtlr0zUQGbyRpxGkPPJs+9uv486xO9Mq7PJXMCKW4fk6f614sweORTVPiodpmcyI0EzsMGcnO1C+OX9llGgM48nMn6m1aQvFPghXlCLvqG6ZPUG3QjVUvq2sZjW7unxJ7xIvxKHQnvpxY5iYRozGGATfI4AypBVvAkT8outkk1EUOXCeWFhussMhX91/CpgIdpEBPVq9IH97NPQ==;31:S0qtk0pZI7r3gA8jIGFpglOgmHUH00BYM2OVBzSQDbd1gWQ+N43kdjc3gBTC1WcrvDpnvKu/OjarImdboTwdwTeOvNf9HfERY7KqFl7Gs7cjozsl1/D4WJR3NQoaEf7voQqK3+j4qEMGqeB2y0Ns/8oqSVzlE6yKK4Ngyw2OTDPQUyxkrzYM/nJS3Oya9zG0RsXxTzddhhCD27w/gsJzcpQfTQdX1OEQdmiV5h24Kuw= X-MS-TrafficTypeDiagnostic: VI1PR0801MB1344: X-Microsoft-Exchange-Diagnostics: 1;VI1PR0801MB1344;20:4djR01Tpce1fOetSiGWLSDyzC80qYEr6dl5fPnQY/k6+2qjI8fnmRwbXSCOjCD27W0MMKGTmgUCzxtgjmmHuqsn2qZy1HEUcS9pqtFB/bxeVF//xsDzNKVvHhjG38+fOWdr3QOC4NPxYsO29sc495JRjO5o1ZvDef6zRa69of+017XWZjBontCt3cAgv3IXT5eXZ/2IyQy3tlKbaIba2cbHH6LXFoSKVwNSwcE4+FvOTFlmHjam8gvf4wbZrXjNcLU56C3vmoJCyeOyscsK5J5rUvhEZun9WlgqnLmRhcqirDHtfqkStxpWan0BT3hFXq/+eWH/+64KjWR03Khh4jxkfAwGdHw92Lk9xEeKM4zDMxeFjytN5/vS6x5E1m5CxAB+/A6u+sOUJovPFsVN0qQ4XX8UNgeiY9c8s7kReFRQ=;4:H440/20M1uNJNW9w7tZqL4/AbC8qXVLrcXZcKZ4I7dNpxXAtcPa6KNLNyadnFdxpKxXU+AOwJuYAQOmXcmpRJKOWAmfkkMiEgPYdzzE7Lym/zBA+DoeMlaKNc6YtFCT5ZRkYJJr8HXhRhfSfKLe/YJ4urHnxGoIr1IplGUrlMgySQ8ptlJ3dLWHDQzxFJKgYhZeuc6r4yH1SUbj74cWkGlYoMeB31q5wSu6FGBUsBtvMyoO5Cw1KZK8v+AT9bsK+Q5uGM8XuBKqYP6K/VlkGGA== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(3002001)(100000703101)(100105400095)(3231022)(93006095)(93001095)(10201501046)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123555025)(20161123560025)(20161123564025)(20161123558100)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:VI1PR0801MB1344;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:VI1PR0801MB1344; X-Forefront-PRVS: 049486C505 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(6009001)(6069001)(346002)(376002)(189002)(199003)(2906002)(9686003)(189998001)(305945005)(6506006)(68736007)(25786009)(86362001)(6116002)(83506002)(53936002)(55236003)(5660300001)(47776003)(3846002)(6666003)(230700001)(55016002)(7736002)(2950100002)(39060400002)(23676003)(76176999)(81156014)(103116003)(101416001)(50986999)(8676002)(54356999)(7416002)(33646002)(106356001)(61506002)(16526018)(478600001)(81166006)(66066001)(50466002)(97736004)(316002)(8936002)(105586002)(58126008)(921003)(1121003)(217873001);DIR:OUT;SFP:1102;SCL:1;SRVR:VI1PR0801MB1344;H:localhost.localdomain;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtWSTFQUjA4MDFNQjEzNDQ7MjM6Z3V2SDJvc1I4bERkZGExWUNTangxbEQx?= =?utf-8?B?YnZ1SEY4RnRHMWJQdFc0UFBCSmcrWmVQM0xmaDQzVW9CWE80dlBxR3Z4bno3?= =?utf-8?B?dGNMQmJqSUl4ZVhPTmJUeXBWZHFDcTdTZzErcmNMM2VEdE5sbDhIdHdoTTJK?= =?utf-8?B?a1EyYldBaFViTnZKU3BpUzBneHVhcThnTUdlWG56UmJtd2FTU0pka3ovWkdm?= =?utf-8?B?KzNOT0FtZHFSUE9HWVQvdWVpS0E1MG5kWVVQZXh1Vk9EUTdOdEpPOUd1T3A5?= =?utf-8?B?cnJMY1d0aGExMG9YcnY5LzN1QkZwTysraXpBVWd4U2FwN0VkMm0yTDJYOTRu?= =?utf-8?B?OHRyMnZiWEJSRXNOUWFPcHVaNFUxR2xVMTNyQjU3M2ZRM0VJaFBMTXhLWHQ4?= =?utf-8?B?dHpRaHZJN053aG5FYTJIa1RNZzhuUGp2V2EvOEJtLzJweGtYc1oyK3JHUnB4?= =?utf-8?B?aG1ZdHlJZ0tjUy81ZjZGZGhGSlo3SVNPYzZTK0hnQnhQN3JzOWF6QXdQMi9Y?= =?utf-8?B?bExJTjRmQUNGNEJwTkZwL3pMZnpHZDM4RytSdDZnMU9IeGp6K3hOckcwcUN2?= =?utf-8?B?TUxMUVd6YXI1aEpneC9lUWRqS2ZJazNPelFaeHJsYjB2MEVvcWVZcG10SGFM?= =?utf-8?B?a1VXOE40bE5VaFdobThHSndTMDNJWVpndHUyMHVMUmJVN2tIZDl3S2JmaGFp?= =?utf-8?B?aWZjdmQzZ3MzU1lMNHByU2lPOVZQbmtsczk0NDNKazdUWE1GNjBGaUFicmZl?= =?utf-8?B?SFYrM1JSa3BGT3pwaWFQVFVRRFdJeWw5QThmL3cwdnF3OW5YektZaVFGa21E?= =?utf-8?B?NVRPSkpiRmMxcTdvTXJ3M3hZN2NLaE9nZ0grWmhRMXFndEpONU41UWVabDA2?= =?utf-8?B?Q1MzZkpMUVhES0R5d0NVNzBzSnJUdVY0K2tNaTltVWtVOURkc0p0L0lqWGFO?= =?utf-8?B?MFE4Y3BlbDRlZCttZG1GOUtPR2pnOU5VdEFKb3VIcXN5UWNXNUVoaDI2RUdL?= =?utf-8?B?ekJjeDZDeVI1aEpDQlRIZVNuRWU0UXA1cWR6c3k3aUM0VnNsZjFkTEQ0ZHQ3?= =?utf-8?B?OVBySGE4UnNycGhSSU9YSHNpMnFiWXVzemszdWxxcDNKM1pKMzV5eU9TckRM?= =?utf-8?B?RVFzc2NxRzVEVmxiaVZEYTB3aUxWckZGZk1CemVFRnVaQklZdjl5cG5oZkxq?= =?utf-8?B?a2pWdlpUN3B0cTdYWVQ5UzhReVRPR1RHWkJ1MXVKVXVia3pyUWIxMUEySi9q?= =?utf-8?B?QjFHOXJsa1VzbEJaMkdrQ1RJbG9TajNjNHdTSGVVdExrNlJ1Ni9lU0tmRy9w?= =?utf-8?B?aHpic0FhNDRhOWZRaW55Z0FCWVFodlczNDlPZFR4TmlOOUNQR09RbFp0ay9p?= =?utf-8?B?YzM5SVRveS8rY3BmZjdhSTlYbGRoQmtjMi9xTXhsU3YxYklNdGZudTZlQlRO?= =?utf-8?B?UXc4cTdoVlF6clg0QjVDTThKOGlEckxIMVZvaVkzK0tkYVhKRVc0MHR0S0dV?= =?utf-8?B?OG5DeHRBZ0ZaMEV1dFFDQitiNDE0bVVSMU0yMTJ4TDJTSWNydjNYeEpaWE42?= =?utf-8?B?UEtKMlBjSE9jWDI4bHNHc0FVTHk1eTd4UGtNUThLUGR3N2RNY05HeWQ0U09w?= =?utf-8?Q?CxGnQF+OxVrvqElG4KdMbo?= X-Microsoft-Exchange-Diagnostics: 1;VI1PR0801MB1344;6:HEnJRuPr4cOgda5kz6fpiGU/B6Bj6IMjTt0/zAkgh4Qj+FSvD/zBcSEQ/gFJU6lUJWLnnySKAE6bxzbiTB6fFUHqDPOFbvEbiRzfFyVLFjWf50ArrzcjYQCHTmbUp5MzUS5d9YN1zxbqkicsvyEg6u5qDPxXIx62ygUu9MKzFCwsH0Kugjq9Ezjwyulqk6rHkH6D6fY394dc1y2SnqKqmhWDpEHzZ3cCRiuNt5Kue5UCw3G3s2wmSbZ0Is2VK+gYI/qDSovQBmQhH81xA1/t50FrMGU1WCeVnjQgZMciWsiEd5AdpbSbJBah+ti1qYLAj4nTTpcyebVJ/+swfIydAIUCoCW+gi7Nhjal8JzMGbU=;5:XCjtHGEk9aMdmK+jgYCq7UQr9FRse/p/8LS21arZOrZ6KaRJ/O4YT2wSee5dL5tSsKTvIESqDQjwZYuVZ9MbKfyBJBQlIijdZcPTI54DbGICydbwjrGo1KsoQUaffxYmj1qrTO1/Ca14Qd9TurFxG+o9XnvmD+kuxLPo5a9tSas=;24:G4hdIo1wsTquamASVKe5qj8UXsBpmzHtYLml/YoZmz45BOdWG2DvmZn/rqrUUFBYxZ9Xjt4SNoffD7A+m8Pw89BFLGswARmHcW3cMr2uJzY=;7:LuznU7KQEi88GCF/S3ZeblWpc3veBuNpJLWqotXkbUSQKKLUwicb3sdrXYHHl7EI7mLL2Vb4iqtBaWTDXtqBe1zCNBkINYYUcptVo2H90LjHs4lq5/pgwJIypkOAPDKms1Rxit2Ac06g72VRlWImuJ+LWEt2/Ixe4pRTVMpKNFn1yl8xxLa1XR+2dv7pbwsM+9bX6zxVcgveOuzU/ZohSs0LJVooxoQNzeYtqtWeFO8HxXjA7CKpbZaMeFCnAqTK SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;VI1PR0801MB1344;20:c54S9WN4RdC9fjwgUS3fS2qx+/yGDn+OhQXfFGSYMmQLQnR04KqQLfZwfxWVCFTaQjoAeZeIY+pi/fKndw/Vqgyiy5wxKMzA2swiZ/TCAqwOpL8dVRNSLgSxKzfYCrJNja1kLZZ/9YC1RlqOHKtfFgpCQIMM1mw2a33Wwy3Hr1g= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2017 18:27:53.5079 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 5366b848-d5b7-4d9e-c16c-08d52de8ebcb X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0801MB1344 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org net_sem protects from pernet_list changing, while ops_free_list() makes simple kfree(), and it can't race with other pernet_operations callbacks. So we may release net_mutex earlier then it was. Signed-off-by: Kirill Tkhai --- net/core/net_namespace.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/net/core/net_namespace.c b/net/core/net_namespace.c index 2254b1639209..a8ea580885d9 100644 --- a/net/core/net_namespace.c +++ b/net/core/net_namespace.c @@ -489,11 +489,12 @@ static void cleanup_net(struct work_struct *work) list_for_each_entry_reverse(ops, &pernet_list, list) ops_exit_list(ops, &net_exit_list); + mutex_unlock(&net_mutex); + /* Free the net generic variables */ list_for_each_entry_reverse(ops, &pernet_list, list) ops_free_list(ops, &net_exit_list); - mutex_unlock(&net_mutex); up_read(&net_sem); /* Ensure there are no outstanding rcu callbacks using this