From patchwork Tue Apr 25 20:37:36 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: 9699707 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 C7C9060224 for ; Tue, 25 Apr 2017 20:38:01 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id B68222846B for ; Tue, 25 Apr 2017 20:38:01 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id AB45028484; Tue, 25 Apr 2017 20:38:01 +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 5B7272846B for ; Tue, 25 Apr 2017 20:38:00 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1950314AbdDYUh7 (ORCPT ); Tue, 25 Apr 2017 16:37:59 -0400 Received: from esa5.hgst.iphmx.com ([216.71.153.144]:43595 "EHLO esa5.hgst.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1949931AbdDYUh4 (ORCPT ); Tue, 25 Apr 2017 16:37:56 -0400 X-IronPort-AV: E=Sophos;i="5.37,251,1488816000"; d="scan'208";a="13114261" Received: from mail-bn3nam01lp0176.outbound.protection.outlook.com (HELO NAM01-BN3-obe.outbound.protection.outlook.com) ([216.32.180.176]) by ob1.hgst.iphmx.com with ESMTP; 26 Apr 2017 04:37: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=IA65QQv+Mfn3LSB4cU3wN+hKfb8aitOFIavzFfiqIVQ=; b=bvzY/xJFUfM+Mm7zPahI+WoW5UwuE33YUtqsyjVKLUDNVglV1gRqtBJUb1ra4+Tni7xJIZdjbF5rkY0AaV5v2oITs7GehM9yHm0M+alT0bqB+ZcAR4YoHqySj+s8VIINyqOZvKTAHjAPgVwv3jeL/EcOxel6aVqe6AarsVX1JDc= Received: from CY1PR04CA0042.namprd04.prod.outlook.com (10.166.187.52) by BY2PR04MB887.namprd04.prod.outlook.com (10.141.219.155) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1047.13; Tue, 25 Apr 2017 20:37:52 +0000 Received: from BN3NAM04FT015.eop-NAM04.prod.protection.outlook.com (2a01:111:f400:7e4e::209) by CY1PR04CA0042.outlook.office365.com (2a01:111:e400:c5a5::52) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1047.13 via Frontend Transport; Tue, 25 Apr 2017 20:37:51 +0000 Authentication-Results: spf=pass (sender IP is 63.163.107.21) smtp.mailfrom=sandisk.com; kernel.dk; dkim=none (message not signed) header.d=none;kernel.dk; dmarc=bestguesspass action=none header.from=sandisk.com; Received-SPF: Pass (protection.outlook.com: domain of sandisk.com designates 63.163.107.21 as permitted sender) receiver=protection.outlook.com; client-ip=63.163.107.21; helo=milsmgep15.sandisk.com; Received: from milsmgep15.sandisk.com (63.163.107.21) by BN3NAM04FT015.mail.protection.outlook.com (10.152.92.170) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.1047.9 via Frontend Transport; Tue, 25 Apr 2017 20:37:51 +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 F2.1F.29323.D93BFF85; Tue, 25 Apr 2017 13:37:50 -0700 (PDT) Received: from milsmgip12.sandisk.com (10.177.9.6) by MILHUBIP03.sdcorp.global.sandisk.com (10.177.9.96) with Microsoft SMTP Server id 14.3.319.2; Tue, 25 Apr 2017 13:37:48 -0700 X-AuditID: 0ac94369-548749800000728b-d6-58ffb39ddf42 Received: from exp-402881.sdcorp.global.sandisk.com ( [10.177.8.100]) by (Symantec Messaging Gateway) with SMTP id F8.2A.18148.C93BFF85; Tue, 25 Apr 2017 13:37:48 -0700 (PDT) From: Bart Van Assche To: Jens Axboe CC: , Bart Van Assche Subject: [PATCH v5 01/10] blk-mq: Register /queue/mq after having registered /queue Date: Tue, 25 Apr 2017 13:37:36 -0700 Message-ID: <20170425203745.19946-2-bart.vanassche@sandisk.com> X-Mailer: git-send-email 2.12.2 In-Reply-To: <20170425203745.19946-1-bart.vanassche@sandisk.com> References: <20170425203745.19946-1-bart.vanassche@sandisk.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrHLMWRmVeSWpSXmKPExsXCddJ5ke68zf8jDNb+YLNYfbefzWLvLW0H Jo/LZ0s9Pm+SC2CK4rJJSc3JLEst0rdL4MrYd24rY8El5Yplqz0aGC/KdjFyckgImEj8Pt7D 0sXIxSEksJRJ4vvBzYwQzjZGid6JjUxdjBxgVUdPeoM0CAlsBoqvYAGx2QSMJL69nwlmiwgo SPT8XskGYjMLBEosm/yBGcQWFoiVmHb3GDuIzSKgKjHn7zQmEJtXwF6i7+ApRogj5CXObtkJ Vs8p4CCx4ko3E8Que4munbtYQe6REHjOIjFt1ytWiGZBiZMzn7BALJOQOPjiBTNEg7rEySXz mSYwCs1CUjYLSdkCRqZVjGK5mTnFuempBYamesWJeSmZxdl6yfm5mxghoZq5g/HuE+9DjAIc jEo8vAEe/yOEWBPLiitzDzFKcDArifBeXAIU4k1JrKxKLcqPLyrNSS0+xCjNwaIkzntOZmqE kEB6YklqdmpqQWoRTJaJg1OqgfFyjq+Ou4tVc6Htypu/9yy2tvixNLgwq/ocm6/b4hK3Q1vf 3F/DtE1ZQTRVddfOJIGtC7cdMv9hxRxrZKbgYLIv6PK/jcVsPMq8Z0ySHi+YatjMvil7nolR tFajI9uqQx9SXjnusvolrtW0w9iot3N6bXbCYpFD+XMj580oKn+49KnR48c+nEosxRmJhlrM RcWJAFKQJYNRAgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFuplkuLIzCtJLcpLzFFi42Lh2siRojtn8/8Igy+PFC1W3+1nszj4s43R Yu8tbQdmj8tnSz2mrTnP5PF5k1wAcxSXTUpqTmZZapG+XQJXxr5zWxkLLilXLFvt0cB4UbaL kYNDQsBE4uhJ7y5GLg4hgY2MEjs2f2HvYuTkYBMwkvj2fiYLiC0ioCDR83slG4jNLOAvsX/h P7C4sECsxLS7x8DqWQRUJeb8ncYEMpNXwF7iyRlpkLCEgLzE2S07mUFsTgEHiRVXuplAbCGg kq6du1gnMHIvYGRYxSiWm5lTnJueWWBopFecmJeSWZytl5yfu4kR7GHOqB2M1yeaH2Jk4uCU amDsyrqgOMVPY4HxheUWq/fxHP+8uPfDyqkHAgRLzjy5lHRhwuxkhxe7tnqcXnrtxs6ely9t W06erRdaqfnJVUaIV2GL2wkpqe0LnzXdK72ifs3xkrrYVgbz1dxmP3/E8++SWG627E5QxtOw sm0bH5j3se6NqZGc5xA+dVOH0ktGRwO9hv3zpZjuKLEUZyQaajEXFScCANfHylWgAQAA MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:63.163.107.21; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10019020)(6009001)(39400400002)(39410400002)(39840400002)(39850400002)(39860400002)(39450400003)(2980300002)(438002)(189002)(199003)(9170700003)(53936002)(33646002)(54906002)(47776003)(5003940100001)(4326008)(6916009)(6666003)(106466001)(50226002)(5660300001)(2950100002)(189998001)(77096006)(8936002)(1076002)(86362001)(8676002)(305945005)(48376002)(38730400002)(81166006)(107886003)(50466002)(110136004)(36756003)(356003)(50986999)(2906002)(76176999); DIR:OUT; SFP:1102; SCL:1; SRVR:BY2PR04MB887; H:milsmgep15.sandisk.com; FPR:; SPF:Pass; MLV:sfv; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN3NAM04FT015; 1:SQX+GaMpaJomyIAwKM56AGYR06kkiWRB8DGR6hux3GTmRfMfwBjsVHaasKxJYhogAa/Yid3u4eANegtcbNWJk/e5kXLigwWHWRFIjI3ZSysKjzKZuQPh6EqOzQmSv/BBRnnlgw4syMRP6n62DEKPq8iYBAjjLvx8W4CIcOmvFALwDh1OkGAWo/d/40tneAWpkLEJcJLzF1wg0O+tGYzy7srtpaNQnavEPZp3CaLJwf1Elfq50STOddLmyj8xLO5SUULk5YtMTRN38pf63KNMo9t9nZUAw0viS8uHS7wfM/Y49PGzd/XCbFo1XZ207WvLdhyr5PVuuzS45IRhPea4K2GEwFzcUz4+tg6/hlVL97LrSN5n/OYDzOoA0h5IWFqs0N+HmfpSd8GRsEqnQjA6exokb6NbFpaiu6QDYugfH6/ANZ1Y2c24TBwLRwl+xxyamTAU/aprYVYKz1FEhDLa90NxuXwul0jkYxNjytkXw49Gg23RiqgQmTXeKrpXuPzM X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: eba07782-3ab9-499a-f35d-08d48c1af1b6 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(8251501002)(2017030254075)(201703131423075)(201703031133081); SRVR:BY2PR04MB887; X-Microsoft-Exchange-Diagnostics: 1; BY2PR04MB887; 3:aJq80lMtqktLDP9DlyEc93vkemK/CCTiT+cqXhwzV42dg2tE9XEAHx9H+z9F7vl2JMxAG8sdG4IB49Qym/tLlkvNK+U7HmROhexGlwY7Fi6fN9PAO8mGPFjNwu8Ot+oL2YATDFiznmUdL1vDlzjlHbHK6y//mhbeUAQELnoxr0i0fJktJF/SMxhI9ksK/DvcWb6QV67h3vK4n/lItKVS+vL17aP7r7AysoNDt09F3+bDDGGMJyQFYQ+CwTI9092EnpCwSnPtZ1eu8WlSCW5NiZOTDAxn7sispK4nrQc60U5i1TiqTvFIBuYpkVGuTZCJVkJn92sERGpHSY0rcvqvxwTQDVMyE1hS1UIFbcHkUxvOVIU0vBMpYBm0udNv5/isOE9cQkSyhBpwfHaG5Ki7E7lNom3EFnT6yNwpPFlHB4eF+5+yfKJqrtKL84QjS/6P9v5WXehhGTZOrr99ql9aBZH7HcRJt3xz2zwW4pftcBFM2ui/LTMBoZcIEGrY5UcV X-Microsoft-Exchange-Diagnostics: 1; BY2PR04MB887; 25:O6ijaeh+sjg2NoQni1zUM0vtZYLaCDr1Ce6N19K079m+slrpMVZ1RHI6ve9rVFAcmZD8o0ECg+d/kTpJfBh2xoiQTJsxtiy7sPfjHmSrm1ozoHDhZm3sPB4CnqEFjxB9YidxYcFpZUl//Ku1WCY2DnXdC73dZ3oCM7A4JFC+5BA43dnda2SXXpmgAHlevdnuO+k0x3JDP5OAHrMgqvaePiy5KiWX8tgRF2KTGd4HbxAYbLuxmogaj21+umKmD+q2Ek2TTL4NGSQBenJ34a4GtmbPUKJEMh4O0g4f8M8bgWHRNSeGkY17sFp1Pij4WTsrf+T3BEFCRFR8irTfQGE1E+t+BfZ67yAFmCtCabaFmlBr9QGNLB4huv2areXVqOrt7nP9NdYIE2Feuwatbnfb4x5OuiMnWRB29CdsElKfw+ECSMwgFYuutwG3OiKTikwll/vBAzjSXSCn8QFbACh7GA==; 31:VZyxZPzqy3Z8mR/5v/RV0v13Mazyt3rW6zzb+R0r79e3xDMgTY2AV4+wVD/hkSY6p05xGxsErE+IWEQyEUsiFP3GKQeWzd5nJ2RN/IU9d0lEgNtS2ryV9yG+veJxixfdbensPkrmo2HGN3ONnr6su4Nvb7kaY980pdAwT1ZbegyhBU1QUSu3CxtrT2nQPrYPwwpaMjdPtq62fUtBk9fdyPIFDOV+4xBKh23nQfzdvtBXHBct3EIo91zU0VAmpSyY3Rt1jIbOcrppSfPl928rbg== WDCIPOUTBOUND: EOP-TRUE X-Microsoft-Exchange-Diagnostics: 1; BY2PR04MB887; 20:+rfweYJ0Ufm8I/kZarih2i6fwVpXPPBkR70noSYBpR2LT/mmVgwIfVPwcoxYc2Fvbmh1HWAkEW9ujZXjiNfLxpl1TQvGln9jDDE+AZLNfTSfXBBtppOP8hp24w0jLapakqp7nawKCPI3hRn2sbST4jaClh9ZiDir57YeTgq+XkbdNhh82SG2z8evy4lFq/7Kih3yG2fLulyEsAuaxDd+b2ZORhA79sxoiTrcJKdqBJarvubdTh+ZFJPxlBBk/bJx56wgw1Ut3aBPQbjuxlPPHIdEyWnPTQNwK2Qdx65Od+JGDW6gB0R3DZDymO0LLAXBFuihiMOokZIUtvW9piNsLeONIdhIBr4+L2Pe6UiPrkUvPoyWnNUhiRhF4x32WogLU+kF5/v1kBMbUBhLH41f4T+nEBmQKbOx/SGXZLRhmZXj2Woh7AQosW2fwOSBN3Zl+kwpmacJP/irb0lWeE6pKevz7NuBebErQXcdqoqqjQ7myX5TOUE0oP44PPqxr29A 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)(8121501046)(5005006)(13016025)(13018025)(10201501046)(93006095)(93004095)(3002001)(6055026)(6041248)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(20161123560025)(20161123564025)(20161123555025)(6072148); SRVR:BY2PR04MB887; BCL:0; PCL:0; RULEID:; SRVR:BY2PR04MB887; X-Microsoft-Exchange-Diagnostics: 1; BY2PR04MB887; 4:ZRmFrLuDID/BgzOqJTY8LLDcJ6NvqwICmJEMT1zVh/LPCUTKjcVAyWI2j/tQFTX7uWG5jPpYGQcnH5dyfDxNq79gu8Go/p/WU7iiVOZ0QQOXw24f0/9kDw4Ji7eDt3j9D2WoU6Hm7p/J7gf3E0uKa1hIziWnA09ABMngHNt5Tv8NfecdAjyokDbCUh+gxqMfbuxl5tD0017am8H46qVgeNzebMu+TrDYmQ/YnDM0RV7etbe4Vy6wiRDwPVrzgpP0EjiOq2lml6OXRTLgKI9Q3bpTVzNzueSLVRFa8A95uJBkomEuL7lPmAn0kkXurXo4Bq6bB8n9CeVtsqK3Zz0BXlHG30k7Wf68jh4oRcXVobrwtYZq4JIO3eEYr9HlArALGNnLM7YdvHEkefwfUwmS95g2WgaqSrs8glD8Saroq4RsONF6fOjS00B3Hd9gY4GM4I0mjdn9yd8R7cT0AWDLpMmsUBUnZWpGpM3nJSmi/D26T+1M2PunEsXOgGvrk6WHfcy644vLmcUCv3dO15i+u4eVFspyaALMkfB74U2duCMPnVXOqjqcH+YuJL6SMU6Li3aLoW37u+ZMTTMtQnN7ZFzJcHsQ1R1HN+bppaxdbL8I76a1yUuz0L7BbsxoZbIZEuBr1l82pLMvxidzEvwqjWozDnLoBpfRnXQzh3qmXVUAp27Nx+c1KcPtG7W6zhKP5EoJL2UgclV2rr3A2G4hnSYqoH82l97PKWK4W/xIa2BAifmRXl9x8MAkByIloyaCco9byz4nTn0zHgoaV951arKpOHOgqtM3Dedo8PKa7111jyH392dKunyTiv5r9fBE0GioZ4omTm+H9zBLxWGyPbE/amEW6hBj7CfZ+TsyVeg= X-Forefront-PRVS: 0288CD37D9 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BY2PR04MB887; 23:Ea77M4F/3p4NXsuyI3fRYgKT1/9Swfk9tpfpiw/Q16?= =?us-ascii?Q?F2nBhfNnUbl2w4WlA9O/8eVk7NosklOgp7pMxlO4Z8Gt1M8ha4ZvM/yqtrvg?= =?us-ascii?Q?EHvCCSbO3D/cUnkj7CsD0Ji3P8GDWp3mWjdZ99fSC1NT0dNWv4x5rfE2wzgz?= =?us-ascii?Q?aUXv2CtVbG1LSGekkDq2pP1WRkIBQkiRXBRKx3e4v7FrbhxNcill4Q9b2pXQ?= =?us-ascii?Q?51dAkeZYfDDoHJdc5mLj/Kw6xF66b40dOBHMYrM+XGrW96E4qe3orcTg7IMq?= =?us-ascii?Q?NJhLxlGv0KIP+M6Vvb/maZnaBpMJqu3qfmJ6+CF1ZAy6lgzpnoE48yAH77CP?= =?us-ascii?Q?rLOTVbZFnSDPP4IiNQZGR8w0Cr3qVqAYww5tRoXkJbtaeYK773iI5ga8V8rc?= =?us-ascii?Q?l46lQ/JMo4ojM2UwOvUiLitxrjC4gQRswKCVEkcMWVm8aXL9lb52lIuIAg2h?= =?us-ascii?Q?elv44fpucSPutlZfpI2/SDAENsR+4Obe157eConX+uw1NPGGmrV4/85I5qBr?= =?us-ascii?Q?4lpERG6f+R1GoWvPxM4dKHvCbRMSBtRNeXxo0Ghw+kGxAyx1H7CrMRwV3LdN?= =?us-ascii?Q?iIHgsT4U4/c6tdP65WvoMIQLgUJw8S7syWZ3XixBM2UvPliahI+1q+pNroAc?= =?us-ascii?Q?VpdXRoqVJVyVyy9CZtaUF7Jev/1xN1SkBk5Y6pUt7MRzidGh2xkIHFlxNV0s?= =?us-ascii?Q?CtqCK7+876Lh3XuDjvdk/ElWZ7cv6liqLkcnICq+NQq4luLz6Z2AiMruVyDq?= =?us-ascii?Q?wTUcFI8D2LR1NV6KajlvxcIX5cDpZ2LBz5ux0Fz7dvGTjTn7FiEZO/EL/GMY?= =?us-ascii?Q?QPOBNDPjj84vPyzY6LCKn4W3Wieln0nQoQB+vMkYFK9YTAUxmthfWwn3mHRT?= =?us-ascii?Q?fU39GDC5+WZqLLI7UuKEqinXn1E0p0rpgcpiiWGgX8NlJplfOh1TI2tKFh7d?= =?us-ascii?Q?mE3D6jOO/FNx+72wsBibYBNhuzLrzGkf9XDtg6WUjFBhqgPVmSQ+OtSRMqgs?= =?us-ascii?Q?/Z5zz+nPFCc6Wwx1K2nws5EdEuoXwWAAnJfkNaf0/txTQW9I1UR4fsRSe/Sh?= =?us-ascii?Q?SE4Cc=3D?= X-Microsoft-Exchange-Diagnostics: 1; BY2PR04MB887; 6:FD5ad2zekJKS5c+95vUCsS3ZZlr6qrtX0gHL2W4QwNcnRud49Cx6meAg92kEwDOEQFTtbtUaS2Pp77jAkm65z35Aye8veEJiG2+wwHJ9IemtSEXm4wxcoZPj5wAf3hR9Jjt55V5aAsfjshI6O+hw0vGXuJf6gne7mmH/BswK7/4kktKv79BSnAlubfwmPBFGrpsdl/eOgA9xxNfVeWcJzVAgEnvnL6S8hBEGehqz/S3orLALv34u7KIWZnfivj1m0aVShqfwMdUFGK7FvYf263vtXxWitrh7JjArHnVH/ShxkLSosPotOu2MSp7xM8GD6UEG46Ui6xkn5cqoLX8CFVAUeMcgs7CA/Ox0lsPTSkXKr/U2v7ukskKH5a1/pBoLuYJJqAzk+lSxZI6/6kVK6xVqWIBlhG7o51DLX8/ZJ9YsgHmCNB7sfQrt87VsNCeZLOfRxab60VHTxeIbBXmBg0p2/z5rjmLxQ8J0d8AEqZJFAPGuFUuGcaXj5+KZbq8OeNbCc+oYvRdMKAb070XdYgMIs+SLfKDalQkpOjR/9T8=; 5:lbD9Lgo7nxTnG59V5aWxshNjvhuNuQseZaOYkm5/Z13CgTbn50SrRwj8ajIdKBAJv9PSspeCL6lhCTOExfzbOmJhgTUeUIJluVEe4NH9DAySXjUTOn9p4knYRb6KYRxlC5BVQGn1yjODkCgrdI6nWA==; 24:xi9R6NL5Ag/r3Jc1OKkmjyotTjIoOqsoM5pmF6D8htx+E8EtuEKoTUurIPiaVHthjeILNyNkGO59xhdPm1AgVur5MjBtkGiNXMf0kWJDWgU= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BY2PR04MB887; 7:oNtamWTF3OM6wY6o+h9v2KLfKTFXfI9kLMqGEy+VRe2t4/MCyVtm6L5TpN9Dtdj7TB9jlGGZsWM0BUc/CUE+SN5dv03Zj3mL4R+BAvZ8ebiLCLrb9xDvW5aKTm5UlqyeeCCVKF45bU/oCzmaqVMYRrjxM9lnuHp9KLKrO0hFQo0e27Or0tHrVzcFmHbOf4XmVrpVHo8nTj7V68dSB99jQpF8WpD2dmDM1vKx8KW8bz1UEh0Fgt4TrztRYUF85aNzBhMg5+KbQfO2ep5JTVFNRmUGDdDTcmrLiYKdNOy0BiwJzJ966L/VHLU4QpTJqV6BA1DgH4qie8H3I8itMcCJ9w==; 20:BbUTJNtbSJnmKxZuOrtSVGLsERqOrjtTO8h2Vs1BPKb3M7LV9tCRv26/LkXahtBSz8H3u01LJOpqhLUIxUkzerRAVqRBP4PM7Gw+tkmqmK/9i8EshqpjlbMr67ydSfJNGBeaX0zJCGZg3CFBpqeyDH8U+gJGt29U3mWng4UZDOs= X-OriginatorOrg: sandisk.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Apr 2017 20:37:51.5450 (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.21]; Helo=[milsmgep15.sandisk.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR04MB887 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 Reviewed-by: Hannes Reinecke Reviewed-by: Omar Sandoval --- block/blk-mq-sysfs.c | 35 ++++++++++++++++++++++++++++------- block/blk-mq.h | 1 + block/blk-sysfs.c | 6 +++--- 3 files changed, 32 insertions(+), 10 deletions(-) diff --git a/block/blk-mq-sysfs.c b/block/blk-mq-sysfs.c index d745ab81033a..a2dbb1a48e72 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,18 @@ 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; + + mutex_lock(&q->sysfs_lock); + ret = __blk_mq_register_dev(dev, q); + mutex_unlock(&q->sysfs_lock); return ret; } @@ -339,13 +352,17 @@ 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) @@ -353,8 +370,9 @@ int blk_mq_sysfs_register(struct request_queue *q) struct blk_mq_hw_ctx *hctx; int i, ret = 0; + mutex_lock(&q->sysfs_lock); if (!q->mq_sysfs_init_done) - return ret; + goto unlock; blk_mq_debugfs_register_hctxs(q); @@ -364,5 +382,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 f85723332288..3f37813ccbaf 100644 --- a/block/blk-sysfs.c +++ b/block/blk-sysfs.c @@ -877,9 +877,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); @@ -889,6 +886,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); wbt_enable_default(q);