From patchwork Fri Nov 17 18:28:00 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kirill Tkhai X-Patchwork-Id: 839120 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="gUZNqeDG"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3ydmzV1NfVz9s1h for ; Sat, 18 Nov 2017 05:36:38 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1760719AbdKQSgW (ORCPT ); Fri, 17 Nov 2017 13:36:22 -0500 Received: from mail-eopbgr30095.outbound.protection.outlook.com ([40.107.3.95]:21440 "EHLO EUR03-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1760705AbdKQS2K (ORCPT ); Fri, 17 Nov 2017 13:28:10 -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=HiIckvp9kwwYPujq3NUXjhYeuwMIlW+gb0OyA2+xcjY=; b=gUZNqeDGJ1k2FX4/9zK2LvBG8ujRMiBtXl6B1BmBfjo0evF39ZUBDyCz02+X9xTKUHj6G7gJO2Lg8sWtkPrCHmRrBAmJOahxbJ2Wrxt9sdw8IbfniRV6/6lE5mgfsfGQ6TdCx9UZhrepkhQjAGZ+65aQw0bAPhG42pA6m8doE18= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=ktkhai@virtuozzo.com; Received: from localhost.localdomain (195.214.232.6) by DB6PR0801MB1335.eurprd08.prod.outlook.com (2603:10a6:4:b::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.239.5; Fri, 17 Nov 2017 18:28:03 +0000 Subject: [PATCH RFC 05/25] net: Add primitives to update heads of pernet_list sublists 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:28:00 +0300 Message-ID: <151094328094.20009.1172105574765830336.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: HE1PR0502CA0013.eurprd05.prod.outlook.com (2603:10a6:3:e3::23) To DB6PR0801MB1335.eurprd08.prod.outlook.com (2603:10a6:4:b::7) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 84439dee-0a8f-46fc-11e2-08d52de8f1f2 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:81Qn+WO6etbD0ezQZvXQsz2ZcAjiJamEmmGGOlnbMjjob0eli7ercfCzF9zN7ATJStgCd8f0kUdGptxfdcgyKN0T+wvgKDVEDrSh9wo+w1yanXbZpRe9apBprJ7pEdoz68BUxHjIJC6uWtdNfXdlWQmX19HbJ+CyLxW2zhPK0ptzk6lY99ifw+zObxz6RKhfrt0g5XQ9bN8oTUQrY5Zdnz4kGP3JBoDgBX+PHWCieUXoMcZrNXRZF2oLym2PYhLN; 25:sGZRdGqQr0/sbl21Qjm2Wb6SLrVV2J+Do+eGUB7vcfL6hSlV+zCwt9/2q1gPlru4SeRw8u4l8XTyYv6LuWJS+93dUzJAhHS0XhkISXpbSSLU5iRU82pHH5LT11EpS15hmInmaVyxArJmLEQkTIViXtJEefnoJfIXJkdoP4Mhfaxp6bCR9T9jiXCQ+4ttEAscahLdqAzrX7cxsPB8SQRHCcI5iwAERj2hRhb5d631+onuc4t4HU7zsLm5EBlzswC7sX/ZIZc16tMGDT74cr1m4azSb9LEKRLctJCn4TxRGtdJVQHH7TgyVS1lwhZSyu6vu1dT5FuFiw8JkSG4N0jB5w==; 31:pdpM6I7kJr7mTrRsrr4G62n+YlpfuIePEuhGrXqxy+FdSt9BmWKlADFDhWYqfxzN6xjuei/ty8fQxjFThtAshfohVBA1bOIJHkRR0+IL6UHyLpuGU9t85Q8+elqOQPddj/LKDO6D1ZPfShmyH3adjvwqMv+5XQpD0lLdtTkSfuTC+FzthviW7o/3dQ8Y8G972JTIbLD4Ta0EXMiXk8IbwJsmL/sFne4NSKW5/F44LYk= X-MS-TrafficTypeDiagnostic: DB6PR0801MB1335: X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1335; 20:TUm2tYJVtQu4Eb4igk+53Nn/zX3ewG6yvctG4+XerwQIJ+DbcMiAIIBdSTiPIcb2tncJCLQiCoCaNFTqU24Fql+KYF84cOxxkgdrKjiFiWE31GLNFT//dNU1IvwXcN1kZM9iP9CixukapQcUBxW3WP8unakrFsI6AdxRNV/deg9Ob+lqsHvZCFNXomYTU+f4KK0iKpQCbnpQDUgUi048sPGYE9dlxC8SMYOP4U/OhZ/P1TX0Ej+2LuHc8L1w2qez8UYSUDt6klIJLn7Zn1pEG9wh99mfdYOOKorxQpJwn7BayUti9hIH9h/+TTr4Pjj9n1GVmNL/XgablO8QNujsNfj1YwN2JaUNOvLPvkAafBpXi4cz00qVFaitIgZndSGJ7EO74zLIxd0YKbNWl2Gb1e5OjuHJ2qfwLR24a3itwCw=; 4:QtpeesXIa03Iri7XaRTBtfl0C2TP11JryybMc253sbijwLNNniZAM5U9LSd+pwBB6Qa36Iu4hxpdkdQtWTY0sK4t2lL7PzzR4pMJ+iQGpmeWYGeUGy9byRLKwUoW8KHfxzZnjichTdL5Iqe1upc3RTOjmymweH1wpYzfC0KKbxwoQrbNixHLVNHqAcfKF8y+/OuvSyHo/wBBObbaO1PiynHBzOScYUf+jnGOufqVcjvz+BKOjn9b67skVGpZeDXMdRZberTL0qXvURUZ5ohEWA== 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)(10201501046)(3231022)(93006095)(93001095)(3002001)(100000703101)(100105400095)(6041248)(20161123555025)(20161123564025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123560025)(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: 049486C505 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(6069001)(6009001)(346002)(376002)(199003)(189002)(8936002)(305945005)(23676003)(83506002)(58126008)(9686003)(66066001)(2906002)(97736004)(68736007)(101416001)(25786009)(53936002)(86362001)(103116003)(7736002)(478600001)(81166006)(8676002)(76176999)(5660300001)(54356999)(3846002)(50986999)(106356001)(230700001)(7416002)(55016002)(81156014)(189998001)(55236003)(33646002)(50466002)(61506002)(16526018)(47776003)(6506006)(15650500001)(6116002)(2950100002)(39060400002)(316002)(105586002)(921003)(1121003)(217873001); DIR:OUT; SFP:1102; SCL:1; SRVR:DB6PR0801MB1335; H:localhost.localdomain; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX: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=3BDB6PR0801MB1335=3B23=3Am1?= =?utf-8?q?MPkCXmFCjSGtopLC+IwFTwniqEnagLyYNyf72s4UPgOzkXqkknk3r1mF?= =?utf-8?q?JPr3X09aJvqCzTY0fpKJVxHuolceJfnCAoa7E+OBIck3lsGI2cRVy2h+?= =?utf-8?q?t07dOJtYznd4a3HcICSW2H8zww5GjfhXhud7TEGSpB1q9oLTGtEaIufg?= =?utf-8?q?vQgT9urC0gkBBYnIdtVXaEH0qdTukW8wMLEa6PVVD8dvriV3azH/9VUI?= =?utf-8?q?1WNMpHAHZHFj9CEHjF0/bspqyrxIZjR884u0hsnNVgi3IX1112V8lJOV?= =?utf-8?q?VqvHKaLKPjYeZuPwHeo2JscR1jZSX97rtWbwImlGzY8TqKQhOvgjJMG6?= =?utf-8?q?x0PPuzTYwHpuPtvEyEf8PUqGghTii3OtuKK6PUG/ZI6DfWbtYB3aXgxE?= =?utf-8?q?iQIJYZlFzKfMhy8zW+Pc+dOE0vc0UbA1VcSi6sGLWarw200S834e2naQ?= =?utf-8?q?l/LUAnRDubshka4lhp84eyw2gs8Qs1ZylekAEe3kyPzLhlbfds3/PJjC?= =?utf-8?q?zQq9dHUCekWM5ADPjLwmW37RVHDyhybqh/JJXHS8HlHVXEbROTstt1ou?= =?utf-8?q?9qGaByB19F+YOmInWw/tqe+E5P4flvNhEh8D/Nujf61lJsmXa7GWP38W?= =?utf-8?q?aeSq2lLld6YlWRpBKCkwOD9xNfURb77brcjUMT26tRfd3dYSRF4L1cv8?= =?utf-8?q?pqfGPbU6R63xdZmpj6VNIMf9rVtTG/+Nb8KwSbBLuSKYKzDNxogH1YXG?= =?utf-8?q?50zo+eTdUvM/zJsJHJHMD1pQVkwxUbnfcF7AmdvAgBp/ZTSe1pH+mNG4?= =?utf-8?q?3eFP+js6FOglEEBCIGoqG2b9fZKP//DbwzhX8R62RngkOs+7uss712VA?= =?utf-8?q?HJ3ANdzqQ2L1hNORDi03pI6FBJN1Z5jEFhlQD26YyhdNkJsIOZpt1RY6?= =?utf-8?q?+/642nNq8G8vm43SgJg4jJK3Qg2TDose7qdY8xFiu0YUeFB0WHTRK98Z?= =?utf-8?q?YXpi4AhmrxYKwQnUNPmGm+wkNz/dY4oF0FbgzDh/t3dpTgNWG4xjWnFS?= =?utf-8?q?TtVCKCKVSqbDbMRY+mY5WOHJ1ePhBG3+WZvyHWIJy8O0N710uF0bKfzF?= =?utf-8?q?DZN2ZRHo9qzZE7LaZsaPlrtk0NAi2LyaUBFfOKkAy7nC7nlPDx792OQU?= =?utf-8?q?lCEforkRzyGiHbE5R80hPOIBUy5IPZXvmbPjVoF9gBAnGE9CUeLsOR06?= =?utf-8?q?vd8CalMiDQA6z8rFqWyW1tOSLUhMw7IIoTEidK?= X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1335; 6:Cqlp1W0Hx5aIsXBT6r4LgwSOZsMzc+PPGv1Y3El3EyUxRrB/ToSfOYN5DqER2WmG4Um8pnSifnqFLypXLP7/3eXWtX+ehXsxC0aRol3/c4w29uxsA3pbb6t7uUPADXqW+zhrOfNQuTX1d5HCTj1LIs+ze9qgHB2Bk0MavrRO8VXa5rdRQCHz6aioHjlDsXIghC6l+MDx166+2Ym7u5bevyl37gHA8rnxCxFPRlZ4n5UQDPZNTdPHwhwXc0AALr0RErM+fJajqomF1ywxbcUq/00iPHWQfpF0M5HVfi2zFsLvyHf+yQIOxQmSAnjfcZ7enHKi/jk8j5M/zCCGJfNc8EfILQh0JyMWYERoCENUa0k=; 5:FrCCvWj9w89d4weap4fY3kVcG1bKYDEqkputZs7JFpEl3nUCYViInt/wJOsX6AI7XCaC2hVeXR2jxAHS8BNRp7LG/RsGaVMmMZA8udP5HELEtIUX19E6jukIFSGgSRqRvugcIwvAyyd218uQlfCkV176jO8KXmBXt6rDmKdTnrw=; 24:oGq/zydZQKUehCJ4q4xwIUa1NsRT1dPRy7LYX7mjEO4h1YPHBMp0iTSvUCojIWXPZzLf2fxtek6QbkBp6GvfUQs7AabkfXQ03AP3UFfj31Q=; 7:xbXRL+J8x/ed0LTr9zkKA2RoJL/uhFPI46cNxlJ/gkMF3l6Nwa63oGVhAPRhGVADb55WcFt7bKAhZKYTC9yn2xtqoUlBgYa1bbUmG+bDnExYoSzedKY2vM+7JyLno/QGii5wPXrmNQhN/mZC82DmhveZBTV+J6Td287o+SoKFLtBg+cmB2k/BgAM6uUUBJSwkliwSN6jFtH7a5NI+nauNkUiIDeNIOmBPqe9U8vLUxFYp6znpIlFOLX7/SWmPIpx SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DB6PR0801MB1335; 20:X+Mhn6jgdTMfiSGtx/y8vhQT8dy/e6RF7EtJSEkOfjSf0RZtp9rE2dsbWSbUXA0QmLp2f5ZmYOvs85rlInEHftuDL04f3RQGHB4JiYt5iFpHUPDnMSoGzxsngw127tMJ2QoVUDc+7HSMc1Y3nq4N7Z+DWDq35htecCpDuhFE7Ts= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2017 18:28:03.6222 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 84439dee-0a8f-46fc-11e2-08d52de8f1f2 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0801MB1335 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Currently we have first_device, and device and subsys sublists. Next patches introduce one more sublist. So, move the functionality, which will be repeating, to the primitives. Signed-off-by: Kirill Tkhai --- net/core/net_namespace.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/net/core/net_namespace.c b/net/core/net_namespace.c index a8ea580885d9..1d9712973695 100644 --- a/net/core/net_namespace.c +++ b/net/core/net_namespace.c @@ -939,6 +939,18 @@ static void __unregister_pernet_operations(struct pernet_operations *ops) static DEFINE_IDA(net_generic_ids); +#define update_first_on_add(first, delim, added) \ + do { \ + if (first == delim) \ + first = added; \ + } while (0) + +#define update_first_on_del(first, to_delete) \ + do { \ + if (first == to_delete) \ + first = (to_delete)->next; \ + } while (0) + static int register_pernet_operations(struct list_head *list, struct pernet_operations *ops) { @@ -1045,8 +1057,8 @@ int register_pernet_device(struct pernet_operations *ops) int error; down_write(&net_sem); error = register_pernet_operations(&pernet_list, ops); - if (!error && (first_device == &pernet_list)) - first_device = &ops->list; + if (!error) + update_first_on_add(first_device, &pernet_list, &ops->list); up_write(&net_sem); return error; } @@ -1064,8 +1076,7 @@ EXPORT_SYMBOL_GPL(register_pernet_device); void unregister_pernet_device(struct pernet_operations *ops) { down_write(&net_sem); - if (&ops->list == first_device) - first_device = first_device->next; + update_first_on_del(first_device, &ops->list); unregister_pernet_operations(ops); up_write(&net_sem); }