From patchwork Tue Apr 18 23:29:42 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bart Van Assche X-Patchwork-Id: 9686663 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id E286E602C9 for ; Tue, 18 Apr 2017 23:30:20 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D418F20265 for ; Tue, 18 Apr 2017 23:30:20 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id C90A2283A6; Tue, 18 Apr 2017 23:30:20 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A8D1C20265 for ; Tue, 18 Apr 2017 23:30:19 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932623AbdDRXaN (ORCPT ); Tue, 18 Apr 2017 19:30:13 -0400 Received: from esa2.hgst.iphmx.com ([68.232.143.124]:26996 "EHLO esa2.hgst.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758224AbdDRXaC (ORCPT ); Tue, 18 Apr 2017 19:30:02 -0400 X-IronPort-AV: E=Sophos;i="5.37,219,1488816000"; d="scan'208";a="107953817" Received: from mail-by2nam03lp0054.outbound.protection.outlook.com (HELO NAM03-BY2-obe.outbound.protection.outlook.com) ([216.32.180.54]) by ob1.hgst.iphmx.com with ESMTP; 19 Apr 2017 07:48:54 +0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sharedspace.onmicrosoft.com; s=selector1-sharedspace-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=r4rZEnjVJVORP9IFx/b7wE4X2chMY4GlnkPsDZwdQjs=; b=Y52UcLrcEAm22uU1rWz2b1J7WNZE080zUZvEQUi26KOMVBdijr/Y8Y9fF7NYORi7JxxOuwvjuTrFxAR62WBdKJWBFQ5miacXRDGlCMWCA63VH7TNSgsGAHCpV+naOUf6NCbCHMxb4dtdsyOLKSdZ6WHtsD9lPZOQqDjk2EJ+Uv0= Received: from BLUPR0401CA0020.namprd04.prod.outlook.com (10.162.114.158) by BN3PR04MB2228.namprd04.prod.outlook.com (10.166.75.150) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1034.10; Tue, 18 Apr 2017 23:29:58 +0000 Received: from BN3NAM04FT059.eop-NAM04.prod.protection.outlook.com (2a01:111:f400:7e4e::203) by BLUPR0401CA0020.outlook.office365.com (2a01:111:e400:525a::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1034.10 via Frontend Transport; Tue, 18 Apr 2017 23:29:58 +0000 Authentication-Results: spf=pass (sender IP is 63.163.107.225) smtp.mailfrom=sandisk.com; suse.com; dkim=none (message not signed) header.d=none;suse.com; dmarc=bestguesspass action=none header.from=sandisk.com; Received-SPF: Pass (protection.outlook.com: domain of sandisk.com designates 63.163.107.225 as permitted sender) receiver=protection.outlook.com; client-ip=63.163.107.225; helo=milsmgep14.sandisk.com; Received: from milsmgep14.sandisk.com (63.163.107.225) by BN3NAM04FT059.mail.protection.outlook.com (10.152.93.121) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.1019.14 via Frontend Transport; Tue, 18 Apr 2017 23:29:56 +0000 Received: from MILHUBIP03.sdcorp.global.sandisk.com (Unknown_Domain [10.201.67.162]) (using TLS with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by (Symantec Messaging Gateway) with SMTP id 10.8F.19026.071A6F85; Tue, 18 Apr 2017 16:29:52 -0700 (PDT) Received: from milsmgip12.sandisk.com (10.177.8.100) by MILHUBIP03.sdcorp.global.sandisk.com (10.177.9.96) with Microsoft SMTP Server id 14.3.319.2; Tue, 18 Apr 2017 16:29:51 -0700 X-AuditID: 0ac94371-41ba798000004a52-b4-58f6a1705da3 Received: from exp-402881.sdcorp.global.sandisk.com ( [10.177.9.6]) by (Symantec Messaging Gateway) with SMTP id 9A.84.18148.D61A6F85; Tue, 18 Apr 2017 16:29:51 -0700 (PDT) From: Bart Van Assche To: Jens Axboe CC: , Bart Van Assche , Omar Sandoval , Hannes Reinecke Subject: [PATCH v3 1/8] blk-mq: Register /queue/mq after having registered /queue Date: Tue, 18 Apr 2017 16:29:42 -0700 Message-ID: <20170418232949.5228-2-bart.vanassche@sandisk.com> X-Mailer: git-send-email 2.12.2 In-Reply-To: <20170418232949.5228-1-bart.vanassche@sandisk.com> References: <20170418232949.5228-1-bart.vanassche@sandisk.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrGLMWRmVeSWpSXmKPExsXCddJ5kW7Bwm8RBh+vKFmsvtvPZrHgzV42 i723tC0O37vK4sDiMbH5HbvH5bOlHuu3XGXx+LxJLoAlissmJTUnsyy1SN8ugSvjw6yJLAUb VCraj/exNDD2ynUxcnJICJhIdDx8ydTFyMUhJLCUSWLp/SXsEM4ORol9Bx4ywlQ9XfyLFSKx kVHi0YaTbCAJNgEjiW/vZ7KA2CICChI9v1eygRQxC0xhlJh27g9Yt7BAtET/98XMIDaLgKrE 0qk3wRp4BewklmxpZYXYIC9xdstOsBpOAXuJzdfPgvUKAdV0PjnBCDJUQqCNVWLvgU52iGZB iZMzn4ANYhaQkDj44gUzRIO6xMkl85kmMArNQlI2C0nZAkamVYxiuZk5xbnpqQWGJnrFiXkp mcXZesn5uZsYIaFduIPx9W3vQ4wCHIxKPLwG4t8ihFgTy4orcw8xSnAwK4nwnm8CCvGmJFZW pRblxxeV5qQWH2KU5mBREufNkp0aISSQnliSmp2aWpBaBJNl4uCUamAMNioNOPShonSqpKyA ZETMrqTvBxddX5SZWN3ENP9udyPHXavcBj53449nt98ouj9t5rKfd0tMzmllzFgot3a9mF/q am0b+QatVPHTX8PifVuPnql7U1kWZlRyxGU277UaE6fa4Lgkf0sPY9mDfC93m/dYha+6M2v9 nszrk8TCNc3/sFr5bVdiKc5INNRiLipOBAA7MaqQaQIAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrKJMWRmVeSWpSXmKPExsXCtZGTTTd/4bcIgyefNSxW3+1nszj4s43R YsGbvWwWe29pWxy+d5XFgdVjYvM7do/LZ0s9pq05z+SxfstVFo/Pm+QCWKO4bFJSczLLUov0 7RK4Mj7MmshSsEGlov14H0sDY69cFyMnh4SAicTTxb9Yuxi5OIQE1jNKzPjxmgkkwSZgJPHt /UwWEFtEQEGi5/dKNpAiZoEpjBJf9m5iA0kIC0RL9H9fzAxiswioSiydehOsgVfATuLViats EBvkJc5u2QlWwylgL7H5+llGEFsIqKbzyQnGCYzcCxgZVjGK5WbmFOemZxYYGukVJ+alZBZn 6yXn525ihARE1A7G6xPNDzEycXBKNTA6Pny+vkCtX+9Wxu3XKdEZVbwOCeo802ri153Ubf5x WmfhklvKy+s/9luzTWz6ZSL2fbb35yWvLl/PX1Ga0v6W7/HvLjFunXmFglLrpgnwnOGeH6K/ cs2BNVuvLXWq0j500DvRwIVzz54lW7LDbkUsDOdua4pbWJG+4oP1gZw21z3tKTWbu38psRRn JBpqMRcVJwIAZH8dGbgBAAA= MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:63.163.107.225; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10019020)(6009001)(39860400002)(39450400003)(39410400002)(39400400002)(2980300002)(438002)(189002)(199003)(9170700003)(6916009)(2950100002)(106466001)(189998001)(305945005)(48376002)(50466002)(356003)(2906002)(47776003)(6666003)(575784001)(77096006)(81166006)(5660300001)(5003940100001)(50986999)(50226002)(33646002)(86362001)(8936002)(110136004)(38730400002)(8676002)(1076002)(4326008)(54906002)(76176999)(53936002)(36756003); DIR:OUT; SFP:1102; SCL:1; SRVR:BN3PR04MB2228; H:milsmgep14.sandisk.com; FPR:; SPF:Pass; MLV:sfv; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN3NAM04FT059; 1:uRp+ZZvayygtNKS9jeuZEASMzB1hYbMOSP1INBssSzzYhD+sGoBzRw6QVM2Rcpc/uBYBTmhuR3ZXfyEYqOvWJY5fLhjWUaAs6y0KLqHTwzT2HA/VKIc9ZFOH3sAqDUbbFBq091CohnXtMccbE9ovdlQj5Tmp4CV4c0UTQqe7BUPOybhewMNBcYPfFk+qROwNqoKbP31Vj+QobuOJWGzTpTjsR/ThuTQZpdn18X2B18OflYEfgych8Qwaq2BMSf3JcpueC8wQ+b/LFa8KH1ZQQExfsNM9VsmIZFS4PYZcoUz7QtM+bje5+iukbSVwSkGJMVoVpdyyxLKeBJdSzA14Zjun+tIX4Iiscef6i/X9iJdm8PlATxNshTX16AF+cMyyzbpeElm40ey7IlR7aHm0l9KZm+3JieW2jxIks3BWx4um5wNf332kLTTVCkf9hByZqowHTJSrUqf+nVuNYeUdDSY5hVkojhFUZP4PdMSssFWm+/3/EWgnydC9r42rID9cluU/aM17ASyILpvLlO1joBg+5+/nG4wDnLJAucbCCjo= X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e9fa4d55-718a-4972-c108-08d486b2d3a3 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(8251501002)(2017030254075)(201703131423075)(201703031133081); SRVR:BN3PR04MB2228; X-Microsoft-Exchange-Diagnostics: 1; BN3PR04MB2228; 3:p7Qrq3pT9pMeBO58k+5Ghlr0jMxKkp2bDC0t/eI7fDzqT58AAdWpZs6oCUNTsQEdRlYqv5VgH3DhfjKuPs0MUs2Ij5MRUNtnvj4IbDU/TPL0P34I4ZZrKIjcA1ZgZDUTThlPA9NltLDSgqS9RUugvW9NnbD9mjKNV3F1WNw9jkPwjqxIcM0L5gwV9uqpsJ3FXaGmUXnRHTJebAaau4XR6yQBxcdVtsNJZ2XGSAvULU6SnE/667sudZeRwcvQMdd3kjtWpSP2baJRKxCfUcuKK7iGF8U3bpaywFLmwTRCAFph8zwjnnYT8ELdejZGEH7ACHlO02S2MBo20BI3mX4b80vq1HoSNsQY2QBdOVIB7QQQT9tHsG1z2EXr40oKRsa+/tZiZHb0Bw6umhWrMlhdofwvkZgW0UovdHoQRAoXFrBDw3szSpfiSxpUqC0+vM45sYb6fQaaSUAt9nFq8404LnyA3B9c5NO3W2YNc8pl5jj0MW3ZdQhnhxjXAqONm1Jf X-Microsoft-Exchange-Diagnostics: 1; BN3PR04MB2228; 25:u2PbkD6uVlrGmOynLkE8jCdZ2Zto8kLtuJLgWWRyO8V0u++WAIXtLhX5LfpKdanr65oBO4FMNlismWODzCXuXOJAD8IDaotaZ/3dBAfemXPdZHgGN2vLAAuITR2CyaqH9Rq+I6aEnL2ecG52ME59h4xDTdunOxtohQ96jLI5Ck36thPz1qqtbyW/yNxwwdKXZAceZNxRgXnW1r6l7JUX6/8mHqVWT9Az75ldSBy/4eMSoR3B7V2LE7HN11/UGTSHRykfZ3CYrcZTKCZ/lzH1c+nkfpH0WcMnlz4Ldd76Uolf9m4r57E+ojO92umdwBCfwGXdvWtjKlNO5b4MvUfrfMwIEN5TQGG7+9W7Qj6RJ9W56WgB+o0U/T2RSwR5Fiy1ULmgYOscNEk6duHNe6Tak4rDfAHBbu2G+Ik+x4RN93tLyUZoq1nXsbAM70oxYi5BOzPgE+23ujLW1PGfLs/1tA==; 31:5zCYXIjO88pqzIBf91bI/iyuYsxpK+3ou1bXcNnxjfCn5TrbwsV28djuB750xPzN44ZD8jlGwxdiVD5EO6mxVW2YFrCWsLQ88wKdjmQJ420rbw6IuhR6O6pTA91kUzgfMznYz3Yyb8R1VYfkG1BT08pwEfbPNG1sTJIxCYyJWiu9k9sIrqBuQzscaI/bOOm9fq3taGOaRfXODX7eMCnfglYXGaJabW36Z5CP5Omao8kPj6mc2AVwfObBkMuGfwDOWN6gWV4tNswZvLSTQ0O+7g== WDCIPOUTBOUND: EOP-TRUE X-Microsoft-Exchange-Diagnostics: 1; BN3PR04MB2228; 20:MOhtIybc6dZfprYsKl8a08hP15GKdBU6hOfNz3xkQwfP95umdosxQlBoBoLw14iO9FE+Ikp2EvyjARp3FTjSCvBYsBjKN5E37zevTWChfy8wg3XUKbujo/OslJaj62FyB331AFas/ofmyRDSZCd1jppFUv5WHWAJblRsw4d8oCc2wbED5Sw2OfFyndQ1pEaycqz8vUmEfLZJ74XorWT+oOb/Dr3OTJSAD4tkaL+qpQCwLT7qqrzYZ98G4hMZlz75MFYIrU+KygjEWyfarPRJxkTBe+sr+SkJ+GxJDQM5Os1MI6HWj0Mc7p7UuJqo6HDcuMWhGNvwWls7YL8ACYxrwLicFXTIlmGe0Cn7kuecZPv8FSquj/fcKtAG09Ri7I2kTi3v5JXTguXYF3D6CPjnrh3Vd6K5CIiMxIuFzFEbLUwmWAhNfxdLWDs9eQCtBvxVdQYULStrF0WfjBr0feo0lp9V0LaRZvRH3vdFOF7izwc2QLE3HJaVNku4W0nTqDQX X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(67672495146484)(42932892334569); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040450)(601004)(2401047)(13016025)(13018025)(8121501046)(5005006)(3002001)(10201501046)(93006095)(93004095)(6055026)(6041248)(201703131423075)(201702281528075)(201703061421075)(20161123562025)(20161123560025)(20161123555025)(20161123564025)(6072148); SRVR:BN3PR04MB2228; BCL:0; PCL:0; RULEID:; SRVR:BN3PR04MB2228; X-Microsoft-Exchange-Diagnostics: 1; BN3PR04MB2228; 4:VrDOf3PnZbYbWOlZa93q/MVrBh+pIDxcLEXg1HaPq9jzOv/gPiUpVevZWgs3rk4dgQ3r1k4XKAcyFmRPJkR7zM37VD9lmrDktHWjDHjETVnG/KJAXFDBkqMcXlYbSfGOoF8XuZEiSujQ1Ey1wBWXqtmIvfT/KWTWMMwf+ziLbTgXD2yYImmQZzq4idmXs9cYGRfSKgJ8OKVzDeWIRpqacY3lBLCPpRDMQK6EbdRMj+6w2vzoblQtkMny7noYIHONsj/fDcznpVeYUP7T7UwNYrzybFNMNrt9cHCOtfeZFQb0oH9Oc1NX+dNQwOoAHRgIG/DDXmRPX2lZFNY71D93tY+7ANRb4VWyf/XA02VU5RACz5vZxJX2VckBkHjUpkkshauA13MN2fCOCUmzgXkoSSPIEKPLzkIVW2iZKoHkBXohvkfaGL4gluHGYMWE0BLofQkQz16O+jiUYoVxis3s9qJQVu3eRclX7kEWpsi4f/MvWl3jJPrITvSDQdsxUppj9gSlQSoT3IphfIwscDWsGdomnRgRZoZmhjgnsQSAi6rvoGHqzOGQTLgAUqALx/zYY4LNMwyRXyBD60KbwmeiJxtHknw0wcQ8xk1CvduJwSwnEx7cMWSU/YHx4bX/Tgrda7vAgaAYi6aWtTDFoiwopoLXOFxn2Z2ekvunM+OgDs7qf8vzZcF3agIqK5MLXG8sdUVtEqTmB6G5K6KGMkF2jKsE5Fkag7fYFO8+/OGPjXxP3QbA8UBBJBlyiaLS+dsTGO1RCZDKPisQdCcTymhnknRHJ6MphCCMZeyPr5NkYuVOvAlisk3bViM/N8HnpuKaTMYAfrCNMiKwUsTrSZ2FAgi+86vKPTfKxGnmAL3lUH8= X-Forefront-PRVS: 028166BF91 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN3PR04MB2228; 23:wky7pQj1wvEZR2t2MGsFmpfBQjT3LooKjFYwjI6vt?= =?us-ascii?Q?dndsdCOguzefqNgkcvuGM1C15ugQM7rz4NL/j9qRTdzWbRyef5Ckv3gdzICS?= =?us-ascii?Q?qe4Z350UxqxV2rYhb2h5412gQaSFxUMfz8Zv/CL+JiUD9Vtt7PhTvwkirt3k?= =?us-ascii?Q?Sx/m9SqWiuauvTE3GE60TwV61dBd2KV4XG4Y+h45FdXD2CBJ44oNI/pH6qYB?= =?us-ascii?Q?CUvVNdwMPZ+iwG4fGjPKRV/JQd0+mWEgEaY04q9h9OaJDISo+JfdcGXiQC+b?= =?us-ascii?Q?qr3HYVCk9eWJUhzjgZjW2hZTmduk/MjX3A9v1TQsBRjiAiNHc6Wi0dHMBAmN?= =?us-ascii?Q?XHYi+0Jemj5oX1EH6yt5FsaKwNdrtGLNyHyloxjkHVnkdqh40fNZ/7ZPHsKf?= =?us-ascii?Q?rYqP0I9IYsED1RLEuc/c2DxcV2PzhVMZYuVcCyr89981BCG5yEVYIIhRv1hi?= =?us-ascii?Q?mta30IeXOFB9YXfZnFNh78GC/8JCLWIN7uqm8BcleJq6lKe8wfxfHHIEMNFR?= =?us-ascii?Q?xJ0nlWDc0b1bl7k3izy6OxMj8SI1YbsmHfND4WVsqB+FLczRt43UDiFenN1u?= =?us-ascii?Q?+AcdBhAH841WJBTlaoORnejnEHPHuv6idrY78iXe46wVdylRFVi22mKwpHsL?= =?us-ascii?Q?Zd6yIHnDIg8yYi27tpp6d5hOGRgqj41tdn+bT3k7zW11qmBKh4wPmhKq6NfF?= =?us-ascii?Q?ujLhRQdNxQ+ACfeoI5SojzU8nSoQZWEJX0s7OvFGQdQ40Dylm0HjshQGjIJP?= =?us-ascii?Q?FCHjKGismKxUDjXN18pnORCfOVNsFrjYJ+4ecnAnpIY4f6uykFraPS0r1cL3?= =?us-ascii?Q?aYgq5QHd/3uATFLgdubOOsWJu/MSk1B8Ieslf+2ZIq/hFmSL8bc1Svomsqi4?= =?us-ascii?Q?+1A9efTyXAv2b7I9M1LdSrtjqxZ+5gbOyqhIfDAqgbZAnOij3EWKTkJmTpxc?= =?us-ascii?Q?C9za2sn+TKP/Jtoe2FP21U/m7tDLrsY7ROM/EsbGJSUzUe9ueLN/2hTv1HUL?= =?us-ascii?Q?3eWEQmu3GjfvZgNU6ZdUDqG?= X-Microsoft-Exchange-Diagnostics: 1; BN3PR04MB2228; 6:sDPl4TImZRzbA4zmnId6ujp4bWaIStjlIl1kN8dlkW5hkM8jUccyDAFXf1fbuf7FC3OdhOZABQ7rk8o/wElS6BoyW3OUTiIfQXjVgchmwcFMjtP6P0aj3Uldlk+FzZ0rwzrB4Dv15pyk83ccoj6c9CDOi5S4LqLBfgH5/SXgtl+yFUap/vCqazTjJtIo7FZJc8ukH26QKCZW/g9jjcqsunnaxrdbm3HATk7uwnSqKIuBuwFSC0A9R98fSA65oPV5tM6hcgHBc1bVeneGrUEAcsrDHDTTbbXD9lJM+qNZQSTbhDs2irmHN1WPZ2l8/BOgSlJe5XTy84VaJ0/UwkQqgwP1r+wCcfMLdPiziocsWo34V0ak9o6HH2Uyl0NANw6PxF2nnQqXbhh+dMpB3RiJaT865ctPSUna3TI2mpg8kdFQaJZrHd8UiG4rNZAYVLPrhoQxBW0F/vHmHgtBpIYGgH/lt1N8hD+DyENDHCvVvvtn7OudeopzGsAWlk1KS2bCqJPqzwNGkGj3w6NSeHghox0LJbmZaKx7RB0Awdz0x1o=; 5:/sWK6ygr+Y7gW0MyHnX2tCFdgQq1aszMt728WPvvIlzez7b2qJJmqYy+sWy2rgjP1N8MUGv271N8cPCX4Jx4D9YZNub7xV++FaeoIE8076PmH42s83bh+F0fhzdreH39ulz7XUFXPmysdoJjbC5+xg==; 24:Qkn0fBVjuawU9ndB3gblDrFssFUGgZxuIjo/6wWxBGh/154QMUBos8TSilBfJUS9hB6jjGQ6bxsaUFnBCRJgiGAMYrH1unnpjpJaRXP0BHM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN3PR04MB2228; 7:dVZ90zaQ10tVu+7dpeEv7+6+G2/6ZLAmOzVmLw5PoUsPI0thefkzTw/RXQQPFpdN4kw2SYdJbvLJRPmLUD4VthNn/Mn6jn8SV3KL3yLPfcAtE94qBGs8po1eF29e0cWZ4112pol0hKxrHVaj1bcQH4z2EQ8RImp1poziVRCbQtHTG7smBQMCwe0ZHWXa5x+viYmeffW3ox7tw6/pIDZ5RFLmHL655AIIMi+Ik5PgeDI8fuM8JBSH6EZDELxQULwBRpGhFhNUuBbR1tOyZXKQD6/VPwaWwjloff6aM1+0zWiA/MOMA9Bm1bv5HFmKgqmaR9L0l5ukpjhsYukjHTNsqw==; 20:1jPZUFZ19GBxGCKGGSku6Jnu5aWaPaxifQxwEn4vp4Qe8ZgR4RAqbDuOd5gHozBwljosyIaXjWQJQp/0GFX57mbKETw49+M6KiezCTcdWsNGeEokO+wQMnctt3dODL5w5ubpBQvNLkXh8MTadglcwuBI3BUwFiN3bq/AqFoRBto= X-OriginatorOrg: sandisk.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Apr 2017 23:29:56.8951 (UTC) X-MS-Exchange-CrossTenant-Id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=b61c8803-16f3-4c35-9b17-6f65f441df86; Ip=[63.163.107.225]; Helo=[milsmgep14.sandisk.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR04MB2228 Sender: linux-block-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-block@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP A later patch in this series will modify blk_mq_debugfs_register() such that it uses q->kobj.parent to determine the name of a request queue. Hence make sure that that pointer is initialized before blk_mq_debugfs_register() is called. To avoid lock inversion, protect sysfs / debugfs registration with the queue sysfs_lock instead of the global mutex all_q_mutex. Signed-off-by: Bart Van Assche Cc: Omar Sandoval Cc: Hannes Reinecke --- block/blk-mq-sysfs.c | 43 +++++++++++++++++++++++++++++++++++-------- block/blk-mq.h | 1 + block/blk-sysfs.c | 6 +++--- 3 files changed, 39 insertions(+), 11 deletions(-) diff --git a/block/blk-mq-sysfs.c b/block/blk-mq-sysfs.c index d745ab81033a..54ef9402914c 100644 --- a/block/blk-mq-sysfs.c +++ b/block/blk-mq-sysfs.c @@ -253,6 +253,8 @@ static void __blk_mq_unregister_dev(struct device *dev, struct request_queue *q) struct blk_mq_hw_ctx *hctx; int i; + lockdep_assert_held(&q->sysfs_lock); + queue_for_each_hw_ctx(q, hctx, i) blk_mq_unregister_hctx(hctx); @@ -267,9 +269,9 @@ static void __blk_mq_unregister_dev(struct device *dev, struct request_queue *q) void blk_mq_unregister_dev(struct device *dev, struct request_queue *q) { - blk_mq_disable_hotplug(); + mutex_lock(&q->sysfs_lock); __blk_mq_unregister_dev(dev, q); - blk_mq_enable_hotplug(); + mutex_unlock(&q->sysfs_lock); } void blk_mq_hctx_kobj_init(struct blk_mq_hw_ctx *hctx) @@ -302,12 +304,13 @@ void blk_mq_sysfs_init(struct request_queue *q) } } -int blk_mq_register_dev(struct device *dev, struct request_queue *q) +int __blk_mq_register_dev(struct device *dev, struct request_queue *q) { struct blk_mq_hw_ctx *hctx; int ret, i; - blk_mq_disable_hotplug(); + WARN_ON_ONCE(!q->kobj.parent); + lockdep_assert_held(&q->sysfs_lock); ret = kobject_add(&q->mq_kobj, kobject_get(&dev->kobj), "%s", "mq"); if (ret < 0) @@ -327,8 +330,20 @@ int blk_mq_register_dev(struct device *dev, struct request_queue *q) __blk_mq_unregister_dev(dev, q); else q->mq_sysfs_init_done = true; + out: - blk_mq_enable_hotplug(); + return ret; +} + +int blk_mq_register_dev(struct device *dev, struct request_queue *q) +{ + int ret; + + ret = mutex_lock_interruptible(&q->sysfs_lock); + if (ret < 0) + return ret; + ret = __blk_mq_register_dev(dev, q); + mutex_unlock(&q->sysfs_lock); return ret; } @@ -339,23 +354,32 @@ void blk_mq_sysfs_unregister(struct request_queue *q) struct blk_mq_hw_ctx *hctx; int i; + mutex_lock(&q->sysfs_lock); + if (!q->mq_sysfs_init_done) - return; + goto unlock; blk_mq_debugfs_unregister_hctxs(q); queue_for_each_hw_ctx(q, hctx, i) blk_mq_unregister_hctx(hctx); + +unlock: + mutex_unlock(&q->sysfs_lock); } int blk_mq_sysfs_register(struct request_queue *q) { struct blk_mq_hw_ctx *hctx; - int i, ret = 0; + int i, ret; - if (!q->mq_sysfs_init_done) + ret = mutex_lock_interruptible(&q->sysfs_lock); + if (ret < 0) return ret; + if (!q->mq_sysfs_init_done) + goto unlock; + blk_mq_debugfs_register_hctxs(q); queue_for_each_hw_ctx(q, hctx, i) { @@ -364,5 +388,8 @@ int blk_mq_sysfs_register(struct request_queue *q) break; } +unlock: + mutex_unlock(&q->sysfs_lock); + return ret; } diff --git a/block/blk-mq.h b/block/blk-mq.h index 524f44742816..7d955c756810 100644 --- a/block/blk-mq.h +++ b/block/blk-mq.h @@ -78,6 +78,7 @@ static inline struct blk_mq_hw_ctx *blk_mq_map_queue(struct request_queue *q, */ extern void blk_mq_sysfs_init(struct request_queue *q); extern void blk_mq_sysfs_deinit(struct request_queue *q); +extern int __blk_mq_register_dev(struct device *dev, struct request_queue *q); extern int blk_mq_sysfs_register(struct request_queue *q); extern void blk_mq_sysfs_unregister(struct request_queue *q); extern void blk_mq_hctx_kobj_init(struct blk_mq_hw_ctx *hctx); diff --git a/block/blk-sysfs.c b/block/blk-sysfs.c index fc20489f0d2b..726ca28584dc 100644 --- a/block/blk-sysfs.c +++ b/block/blk-sysfs.c @@ -894,9 +894,6 @@ int blk_register_queue(struct gendisk *disk) if (ret) return ret; - if (q->mq_ops) - blk_mq_register_dev(dev, q); - /* Prevent changes through sysfs until registration is completed. */ mutex_lock(&q->sysfs_lock); @@ -906,6 +903,9 @@ int blk_register_queue(struct gendisk *disk) goto unlock; } + if (q->mq_ops) + __blk_mq_register_dev(dev, q); + kobject_uevent(&q->kobj, KOBJ_ADD); blk_wb_init(q);