From patchwork Fri Nov 17 18:27:49 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kirill Tkhai X-Patchwork-Id: 839097 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="GobSWjF/"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3ydmnx1Jqwz9t3Z for ; Sat, 18 Nov 2017 05:28:19 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1760722AbdKQS2Q (ORCPT ); Fri, 17 Nov 2017 13:28:16 -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 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=+t+DOhrY+Ah+PmzRBLeGU/ilEQT4aVHzwPJlIa6OoOU=; b=GobSWjF/cLjmRPCzoGhAXi95FPgnkDGoGPAWfpLjhKxIOOu9+i1ZIBe1IzKXHdlvukbdsAQ/i1+ljUu0bAMOGhwT+PJZGEIRDD/xh2V4QqO2n9FlUGXCMfaLs5j4KyrWGOZrh0rrolT0Ydd5GtPwzaAAghCQE0e2t7E7lIKOvSM= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=ktkhai@virtuozzo.com; Received: from localhost.localdomain (195.214.232.6) by VI1PR0801MB1344.eurprd08.prod.outlook.com (2603:10a6:800:3b::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.218.12; Fri, 17 Nov 2017 18:27:53 +0000 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 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; Received-SPF: None (protection.outlook.com: virtuozzo.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?q?1=3BVI1PR0801MB1344=3B23=3Agu?= =?utf-8?q?vH2osR8lDdda1YCSjx1lD1bvuHF8FtG1bPtW4PPBJg+ZeP3Lfh43UoBX?= =?utf-8?q?O4vPqGvxnz7tcLBbjIIxeXONbTypVdqCq7Sg1+rcL3eDtNll8HtwhM2J?= =?utf-8?q?kQ2bWAhUbNvJSpiS0gxuaq8gMGeXnzRbmwaSSJdkz/ZGf+3NOAmdqRPO?= =?utf-8?q?GYT/ueiKA50ndYUPexuVODQ7NtJO9GuOp9rrLcWtha10oXrv9/3uBFpO?= =?utf-8?q?++izAUgxSap7Ed2m2L2X94n8tr2vbXBREsNQaOpuZ4U1GlU13rB573fQ?= =?utf-8?q?3EIhPLMxKXt8tzQhvI7NwhnEa2HkTMg8nPjvWa/8Bm/2pxkXsZ2+rGRp?= =?utf-8?q?xhmYtyIgKcS/5f6FdhFJZ7ISOc6S+HgBxP7rs9azAwP2/XlLIN4fACF4?= =?utf-8?q?BpNFp/zLfzGd38G+Rt6g1OHxjz+xNrG0qCvMLLQWzar5hJgx/eQdjKfI?= =?utf-8?q?k3OzQZxrlb0v0EoqeYpmtHaLkUW8N4lNUhWhm8GJwS03IYZgtu20uLRb?= =?utf-8?q?U7kHd9wKbfhaiifcvd3gs3SYL4prSiO9VPnkls9443Jk7TXMF60FiAbr?= =?utf-8?q?feHV+3RRkpFOzpiaPTUQDWIyl9A8f/w0vqw9nXzKYiQFkmD5TOJJbFc1?= =?utf-8?q?q7oMrw3xY7cKhOggH+ZhQ1qgtJN5N5QeZl06CS3fJLQXDKDywCU70sJr?= =?utf-8?q?TuV4+kMi9mUkU9DdsJt/IjXaN0Q8cpel4ed+mdmF9KOGjg9NUtAJouHq?= =?utf-8?q?syQcW5Ehh26EGKzBcx6CyR5hJCBTHeSnEe4Qp5qdzsy7iC4Vslf1dLD4?= =?utf-8?q?dt79PrHa8RsrphRIOXHsi2qbYuszk3ulqp3J3ZJ35yyOSrDLEQsscqG5?= =?utf-8?q?DVlbiVDa0wiLVrFFfMBzeEFuZBIYv9ypnhfLjkjVvZT7ptq7XYT9S8Qy?= =?utf-8?q?TOGTGZBu1uJUubkzrQb11A2J/jB1G9rlkUslBZ2GkCTIloSj3c4wSHeU?= =?utf-8?q?tLk6Ru6/eSKfG/phzbsAa44a9fQinygABYQhvW349OdTxNiN9CPGOQlZ?= =?utf-8?q?tk/ic39IToy/+cpff7aI9XldhBkc2/qMxlSv1bIMtfnu6eBTNQw8q7hV?= =?utf-8?q?QzrX4B5CM8J8iDrLH1VoiY3+KdaXJEW40ttKGU8nCxtAgFZ0EutQCB+b?= =?utf-8?q?414mUR1M212xL2SIcrv3XxJZXN6PKJ2PcHOcX28lsGsAULy5y7xPkMQ8?= =?utf-8?q?KPdw7dMcNGyd4SOpCxGnQF+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: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@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