From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752644AbdKTSc7 (ORCPT ); Mon, 20 Nov 2017 13:32:59 -0500 Received: from mail-he1eur01on0138.outbound.protection.outlook.com ([104.47.0.138]:35389 "EHLO EUR01-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752010AbdKTScz (ORCPT ); Mon, 20 Nov 2017 13:32:55 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=ktkhai@virtuozzo.com; Subject: [PATCH v2 04/31] 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: Mon, 20 Nov 2017 21:32:45 +0300 Message-ID: <151120276498.3159.10618037062400965499.stgit@localhost.localdomain> In-Reply-To: <151120175301.3159.9577108443167812854.stgit@localhost.localdomain> References: <151120175301.3159.9577108443167812854.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: HE1P191CA0024.EURP191.PROD.OUTLOOK.COM (2603:10a6:3:cf::34) To DB6PR0801MB1335.eurprd08.prod.outlook.com (2603:10a6:4:b::7) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: d7f16113-ed91-48f1-6671-08d530451ae6 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(4534020)(4602075)(7168020)(4627115)(201703031133081)(201702281549075)(2017052603258);SRVR:DB6PR0801MB1335; X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1335;3:B0LZTHVbbLZ4ALWckXUh3neb84yMEaAPER0abv1GlfOSTJPVBOfwqjc/Oi+HBlDVMkvv2AYil3WG+RSrmDQznbIHcwk27J/XUmU5dqOp0MJbt5PnZcUhEEYDSDvSBwTZijr5S4gtyc+Eo+NbMcxAeY/HF+WDc3R8qiAWEqn21AfhW7OQU4tIWnkoDviZkcKXZ0Cep/NujkN9RuTg57dUlhLaOlbDTHDQjrOx039heY0G7L/y52ymUiOm4KVbCtsk;25:eIi60Ju1Ol2UMhYF+b0KJmbAd3QcUpRYFX8dPxyj4ty6axne8XkKczpIMdWaLg7P+QpvbAzvMGSt/zyky8o2hyIE+zEWPiK4VQjga+EhS8KtL+Ib5HCD/kymmkzzpEf9BKOhIh2gcaOdqd0Qf3Nqars5cxJAXGVrgkCA/2GXYRPdCuF9Re/mAUxTd38gvLBRemQ36FT3xw44yIHB8ZQlQYP3ECjgnfOuP1eDl7qmrcasKzrNk6YZlAo5mlw3KGEL8+mSHzSWU07M0BgIBpC+0nqPw+I58eK8c7nBu4DkIR55WbRLyVxPrA9wPFKtwfAEaPzPSiHgPBi6AlUQd/DJrg==;31:43Z1LxLjyhAb69ZJo49FlgHNW5NuobzYoN8UZvAE4oNXzARCq7hZNdKR1AzYTbzo9OkLbI2ABzI4WVck7bjxoKkRksr8GER/Yznh7G/TFn8mRCNdNoj0ckDhTKNLNFzS3AUscLN0vpfLfz0BZ8FXYQHQRyb6k10zrYYGcFKjmfjnl9iafXfG5cwwMuu415RkUM15XpnOH9kfkfWjOxSItLmITLOFoEskdB48vr7zHsE= X-MS-TrafficTypeDiagnostic: DB6PR0801MB1335: X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1335;20:+nAN4wRFjRZFtb25SEoKGl0vT7AdNiaKM8gU3IQhcT+dhdLcIPMe7Op+9DTA3HYZhjz+3qEwKf87vWAAVjxjz8x8y1DdED15k1SF0RIF/hAW9qO1icnLQ8Q3ym+/IhUaPg+rwAioenmd+o5+91jcQfaBcPFYwr1ux7omKZVmTMHeKI+fqDqnh5EY4LV/0znZe2h3BbW4ewcgtVqTQH6l6rbFLI4jAr7HUoxmq6mkRcXrbklDB8r/zL/uCwPy7V9way6oJwq1v/ZbPdiTNxVCTlqh6VKQL1YGCCayYqUd0VpOcwDDi7T+yqf5HAOlbibiTrF/sbqDRoYZTliEvkLWY+BnsYKDdhNZdd2cVHTTuG1UdFacSUJKQMGUVuGniAI+WscLD616616sapftgG5FQdlS6PVPEC7WnfnLhbm8aHk=;4:W5XmEcSffI6c7iie6Dte02234aZMmI0MBNhiNxAhgwsHgxQyMaXPytGXIis3td9zvyeJGHgX1QJIcRvLcaggTjqBVXCeACve//4eUSwbTRkhrIozb4EMFUbcQyVJiNTuJtzuWgq6xrl4In9Jd2tL9l9+ZFdd5wO4/auehOo8Oz63IUL1RdLjRoSlJR3Ln9EiEIVAgTEc6slatsRtOkBdwocIvTNS12e8FQ+VyUXoBr852/YeDB8CGkCwMyZe3i4AgfCuVBnlCfAMWVhpE/P5wg== 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)(8121501046)(5005006)(3002001)(10201501046)(3231022)(100000703101)(100105400095)(93006095)(93001095)(6041248)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123560025)(20161123564025)(20161123562025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:DB6PR0801MB1335;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:DB6PR0801MB1335; X-Forefront-PRVS: 04976078F0 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(6069001)(6009001)(346002)(376002)(199003)(189002)(305945005)(8936002)(83506002)(5660300001)(61506002)(53936002)(68736007)(97736004)(55016002)(103116003)(2906002)(39060400002)(7416002)(54356999)(6506006)(50986999)(76176999)(66066001)(3846002)(47776003)(50466002)(6116002)(58126008)(478600001)(81166006)(8676002)(86362001)(316002)(81156014)(230700001)(105586002)(16526018)(106356001)(55236003)(101416001)(23676003)(9686003)(189998001)(33646002)(7736002)(2950100002)(6666003)(25786009)(921003)(1121003);DIR:OUT;SFP:1102;SCL:1;SRVR:DB6PR0801MB1335;H:localhost.localdomain;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtEQjZQUjA4MDFNQjEzMzU7MjM6THk2bWhiQ0tWMnpjYzhSRVA1ZUhJMEox?= =?utf-8?B?OHFCY3Q4SzJaQkhZZkhPbU9sYUNVbmkvZzZUL2hLY3JxMnJGcFpPQXlCZmI1?= =?utf-8?B?T0FKdUVxUytZY0pOdUxmbG13SmxPNDg1elJrV0JVZDJYemoxWTgzb0ZZOEw3?= =?utf-8?B?Y3VSV1lZZzlySVEyQ2k1M25aVGVXWEtTU2d0S1IvenE0elFLU1lTczlzSVZn?= =?utf-8?B?Q3M5WVZ6b2p0a3NhM2VlMXNzSTNVc3JNMWIyTE83VEFtM29ETXdsMWFtb3J5?= =?utf-8?B?UlZUejJ2eFZBbTdGVVFNRkdPZUpMMVFGN0FBa3BadFNmYlN2V0RYbTY2MDRH?= =?utf-8?B?UDRVNnNpL1JxdmxaMlBmWlNGY0lEN3U5Z2ZTKzZ1NVNIWHhRNW5tSzhrZFAw?= =?utf-8?B?TE5hQmV4OE0rNkRMZ3A5eGZwV0dqUElreGNUOVhtdnJveXpZNkcxZWIzaEs0?= =?utf-8?B?S3lCVmpyeURWTVJ2RDRpaVIzU3YwUVpMa1BYTlI3cWtUbkd6MGo2SGtOT1l1?= =?utf-8?B?Sjk2Y3QrU0pOMDhESG5Ic2RJdzUzaXV1akZEL2poMkZzVnF2cFk2ZWVSNy9C?= =?utf-8?B?eTR1SzlKQzdxUEUxWXBnd2R2N2EwS1h4dlNwTUlMQ3FyNG53TjFjWk9EYzd6?= =?utf-8?B?U29PT2pNSmRRWGJ5aGc3TTR4RUoxWk5mcHdKTGxtUDlzNlRPUFNST1RSRTQ4?= =?utf-8?B?R2JzclAySDFnSmYrU0JYelZZMXY3YnJKcGJoMjZpWWhqZGZnMmFqSEQ4WHJ3?= =?utf-8?B?RFJURGh2b1FXWjJoWENaQlR4QitlOHEwQUxzZ3FtUU5MdW81NWVGcHZGNGxY?= =?utf-8?B?Y05BU1lCK0FYcFF1eWhIZGpud3dHRytZNW9ZZVZzUzRpWGp2YVozRHlDTzNz?= =?utf-8?B?dERCcHI3dVB4ZFY1TG03N2F4bkVQMzE4Vyt3UXRFRU9vbzVHM2xra3R6alhR?= =?utf-8?B?dXdGZTBmSnQ0Q25nZi9WcTYxN2QwU2h5NTNXczZubFRtcWVnS3NLaUVJWnpv?= =?utf-8?B?ZW9QVzNVMlN0TkxyeHpCUk55MjZjc2tLUHRWdUluMDVrZ1lWYTd2aEFBVm9z?= =?utf-8?B?ai8xY3ErTlc1TU5OaE05eXduRlNDUEg5NEZQSDFFdVFxQU9WYWxpRDlqbndF?= =?utf-8?B?OUErR2NYM3I5dlpKdXpyYTVTemN4TllzdHd1ZUFkRHJOWVN2cEZDamxzaFRR?= =?utf-8?B?NlNOVUJnU1FzNkJDYktaa25IU0N4S1M2RGlmRm4zZU85Vm1mWkw3Y1FnN1BU?= =?utf-8?B?VkJYQXM3ZlhxQWtlNXNFRVEvZFlLRGZlSFUyaEtjMFVvcklBMnNmL1ZWM2k4?= =?utf-8?B?Y3VjaFNFUFljZ3lZcGxERnM0ZUN6Ry9PVG1KTGExSHZaaXV0Yi9IRjByc1ZK?= =?utf-8?B?OXhzalR2TzBWTVhkeUlPWFRRNnYreG5rY2hNUDhwRmh4STg5L3kwZlpOaHlt?= =?utf-8?B?MFI3SkNRUXk1aU1CNFhmT0FMMGhSWmxsZWg2QVQwaUFScFpuczY1aG9mRlhP?= =?utf-8?B?OEJoQUxwNmxLUzFwY3pEbjlFUS93dGN5VGExTmpIVHEyeU5wVVNOcXpSTFl3?= =?utf-8?B?Yjlzcm5sZC9WVUk0dVZlanhOQ29jSTRlQTVpNlRzeTJBRmYvL01NbWlSQm5o?= =?utf-8?Q?c=3D?= X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1335;6:Q/U+OAxkZgmZBTaCFjmakl1L+SSOMzNXfzlNenrMcUj08LduT5Jws8/fNfWHG5Qk9pBDI/AWhFg2CoXJIDQXac2JPNDfAZS/og4uOCYcRdv9Lew9IsYmYIbvwJ7RZmK1M/ouFVyy4+2VKAab38A3pKZBBxOJn0jJICFTWZlpQ4DTTmCwx0c7m6+HQFWAt8oHTaJYotVQPyJwJoTwwPwEj7RyruTmuHNSRwZQMABSQpGC4hdiE7WjQaFAl94OVEInRHLc1zescHT4d6ZzzeFT5RKkc7sNnOaf55YATnH6Tb4SzEWmTrD7QhXoFPu6SVH1K71ODJYEfQ5nscESPLOXwfjhavAtd0fPMzvaW1on/u8=;5:o5qIy4H0qsTmDmqq9p8klR44PAyrmkFVBoIwP75AKtiUbno/x8+Q/L9Yh3j9CXTxX1Nknrdu6Y8I1uJqQTq61n5LOjuytxKn2xlWfRzahEhElj7GDcMTuxpetHwX2qYIAVbg3Kdfy1cWtvtNmTzZ9aE6Bubchci93+jbGCCIrG4=;24:9JU1q7Ckc9WgVGzsMT6NdOWxZmW3Yv5JswjeXDx0XrqChe/TE/Rmj2jR9irevKtA79efw0kC9YzEijJ76/x240skDcIvuGYRnaySJ/BbjjE=;7:Uji9dYqDe5NVTfXM2cs6IyC8cORSEar5tzXCidfZBjdwlgI/fvsKOwINh/BLRZJ89qaGBr7nSpOIFq2JN+8pEEoiDJ8T0QMNHduYR1fEiLTLLMdItbu6X4Gk/Y7yfFczxVUob8XUgqpRYTY2NxpaKqvlK75WGJD+i8CnXPlPMy3HA1325ocOoXb6LYNc9VU0lSQHQIkw3PrURyfXgMy1ikK8mWt/84oHpWvx+V+rzXB/J4abCduSEfKL661gDUsD SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1335;20:GAapPwuAqxhU98Qc07S+geaaZAsVjQXnrtcmIQrXLH4gQ+0imsyQNauO35W90uPtFz/fdxVmNGcvYjq0tkW6FnFJsXHOsZhPp9eS7IzO6Kjn9jdMnCezSm079IP8M29O3OW4VCC7qkF0rimtpC1tkU8sc7AiyeEDOEAxj8fsmsY= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Nov 2017 18:32:48.3413 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d7f16113-ed91-48f1-6671-08d530451ae6 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0801MB1335 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 859dce31e37e..c4f7452906bb 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