From patchwork Wed Apr 26 20:47:48 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: 9701987 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 5078C6032C for ; Wed, 26 Apr 2017 20:48:12 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3FA4628404 for ; Wed, 26 Apr 2017 20:48:12 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 32B0D2862B; Wed, 26 Apr 2017 20:48:12 +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 0058F28404 for ; Wed, 26 Apr 2017 20:48:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754349AbdDZUsK (ORCPT ); Wed, 26 Apr 2017 16:48:10 -0400 Received: from esa3.hgst.iphmx.com ([216.71.153.141]:6399 "EHLO esa3.hgst.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750798AbdDZUsI (ORCPT ); Wed, 26 Apr 2017 16:48:08 -0400 X-IronPort-AV: E=Sophos;i="5.37,255,1488816000"; d="scan'208";a="13365228" Received: from mail-cys01nam02lp0054.outbound.protection.outlook.com (HELO NAM02-CY1-obe.outbound.protection.outlook.com) ([207.46.163.54]) by ob1.hgst.iphmx.com with ESMTP; 27 Apr 2017 04:48:07 +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=uI7T/zgP7TuCnDV8vGDV4ZsvE2KOKsWauz4OYJe2mlXXIUaflT/qJDfVV8QfLoLa/ql1OkojTDUnr/M6uFbd2kQEWSg3pECF/XJxtyPBLdYCLtlKV1+Y3whDTW2SjmrswKYzegGksB2SuVEo245CpoibRC9kz0p9yQJj8/SDyR0= Received: from CY4PR04CA0041.namprd04.prod.outlook.com (10.172.133.27) by BLUPR04MB884.namprd04.prod.outlook.com (10.141.204.11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1061.12; Wed, 26 Apr 2017 20:48:05 +0000 Received: from CO1NAM04FT028.eop-NAM04.prod.protection.outlook.com (2a01:111:f400:7e4d::204) by CY4PR04CA0041.outlook.office365.com (2603:10b6:903:c6::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1061.12 via Frontend Transport; Wed, 26 Apr 2017 20:48:04 +0000 Authentication-Results: spf=pass (sender IP is 63.163.107.225) 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.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 CO1NAM04FT028.mail.protection.outlook.com (10.152.90.87) 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; Wed, 26 Apr 2017 20:48:04 +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 49.F0.19026.38701095; Wed, 26 Apr 2017 13:48:04 -0700 (PDT) Received: from milsmgip11.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; Wed, 26 Apr 2017 13:48:01 -0700 X-AuditID: 0ac94371-41ba798000004a52-b1-590107834c4a Received: from exp-402881.sdcorp.global.sandisk.com ( [10.177.9.6]) by (Symantec Messaging Gateway) with SMTP id 54.F9.11415.18701095; Wed, 26 Apr 2017 13:48:01 -0700 (PDT) From: Bart Van Assche To: Jens Axboe CC: , Bart Van Assche Subject: [PATCH v6 01/10] blk-mq: Register /queue/mq after having registered /queue Date: Wed, 26 Apr 2017 13:47:48 -0700 Message-ID: <20170426204757.18910-2-bart.vanassche@sandisk.com> X-Mailer: git-send-email 2.12.2 In-Reply-To: <20170426204757.18910-1-bart.vanassche@sandisk.com> References: <20170426204757.18910-1-bart.vanassche@sandisk.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrHLMWRmVeSWpSXmKPExsXCddJ5kW4LO2Okwd/zrBar7/azWey9pe3A 5HH5bKnH501yAUxRXDYpqTmZZalF+nYJXBn7zm1lLLikXLFstUcD40XZLkZODgkBE4l9yzew dzFycQgJLGWS+LBzNzNIQkhgG6PE1c0RMEVvJiyGKtrIKLHs8FoWkASbgJHEt/czwWwRAQWJ nt8r2UBsZoFAiWWTP4ANEhaIlTi77CZYDYuAqkTnTIgaXgF7iRtX9rJALJCXOLtlJ1g9p4CD xOW9j4FsDqBl9hJXT0iD7JUQuM4ica31NxNEr6DEyZlPWCB2SUgcfPEC6mh1iZNL5jNNYBSa haRsFpKyBYxMqxjFcjNzinPTUwsMTfSKE/NSMouz9ZLzczcxQkK1cAfj69vehxgFOBiVeHgd NjJECrEmlhVX5h5ilOBgVhLh1XgJFOJNSaysSi3Kjy8qzUktPsQozcGiJM6bJTs1QkggPbEk NTs1tSC1CCbLxMEp1cC4xSSM78nyCTvuXVJO4+WWXD5pS15pfVN1gff8PHm5z57Xq0++lO2f x2zOIVq79PaLzY+yFTcdX+IbaVTDIbd+9azrtSZZaou7qoSC7q5/WzgleN8773AeiYjNc/1c 3zsbd9yZtPDKl8U3vTJzr5uHtybymqRU3lnHp39dzVDtePgfrg8pV/uVWIozEg21mIuKEwFP 0ynyUQIAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFuplkuLIzCtJLcpLzFFi42Lh2sjJptvIzhhpMPE/t8Xqu/1sFgd/tjFa 7L2l7cDscflsqce0NeeZPD5vkgtgjuKySUnNySxLLdK3S+DK2HduK2PBJeWKZas9GhgvynYx cnJICJhIvJmwmB3EFhJYzyjx/p80iM0mYCTx7f1MFhBbREBBouf3SjYQm1nAX2L/wn9gcWGB WImzy26C2SwCqhKdMyFqeAXsJbZv+80GMV9e4uyWncwgNqeAg8TlvY+BbA6gXfYSV09IT2Dk XsDIsIpRLDczpzg3PbPA0FCvODEvJbM4Wy85P3cTI8TDkTsYn040P8TIxMEp1cB4Lyi0slT1 7XedpfU3Fc5HsP3imRof9KPrkVeSUUJGgoloQA7T1onarT0JWoueztypt8l4xmSWSPOSlNJ9 STF/XtU8tizZmBqWM/vt7473v78H1rIb7/J/d9bFKMO3kylx2fWwacJzeBPfLihhLLSx8fcU mjhpyy7LBRyX+1iT60scxMVb1JVYijMSDbWYi4oTARDZbZGgAQAA 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)(39850400002)(39860400002)(39840400002)(39400400002)(39450400003)(39410400002)(2980300002)(438002)(189002)(199003)(9170700003)(110136004)(38730400002)(107886003)(53936002)(305945005)(50986999)(76176999)(50466002)(1076002)(4326008)(47776003)(77096006)(54906002)(189998001)(36756003)(2906002)(356003)(2950100002)(6916009)(5660300001)(8936002)(50226002)(81166006)(5003940100001)(6666003)(86362001)(33646002)(106466001); DIR:OUT; SFP:1102; SCL:1; SRVR:BLUPR04MB884; H:milsmgep14.sandisk.com; FPR:; SPF:Pass; MLV:sfv; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; CO1NAM04FT028; 1:2E5gTEGsR9m/uSdAkQL3q5t7wK+tD5oBa4bQnLAmrp8Oh9NaIGzwfuyVrN9kvT9OSBPMBe8U+o8U3/B0f/iZT564ixSYxoAcK1z6H9A/5U5sf85PM+s3dP47frcImqU+evRxTzA+4rL0RdmqN1szynmVzkMSOzdoeMBJan6YwXKceb3TwroZZLeD59aUmDwoO/DOVtmLkBfyTZmswreAHLdN+GQTV0X8XmAk2lfH6/+qvPey5CfdTV1V2Sd1Ag7hv3egZmDU2wlZRPOMocYljySr7D0eXYSTnjvkb3CfVF0TKtwpapgMmK3etydwVq6CXd8MKf3MsuwsVW0o7to4PfOUwrYKQOVbVgPyu2W23vF82g94B+GgxmmFwsrJdL9kt3G3cOzj2MLgX8xRHVHWH1oA0IezdXb5aWUBeSXOth8dMir6DVusp91hn/OATnZYrGF/nK685ThfMGF3B9Hm5QfFtytn5+b/T2/hMXx6qU5g9qBSbA0vvgagzpdeoSpY X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: d158cd47-c387-424a-5fa1-08d48ce5893e X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(8251501002)(2017030254075)(201703131423075)(201703031133081)(201702281549075); SRVR:BLUPR04MB884; X-Microsoft-Exchange-Diagnostics: 1; BLUPR04MB884; 3:SqxAbS9mFVmfVJu+M+ERuO/PsvP5p0K3HejkJ6Po5UOe+3UBXU3uKswLA71U/Yp6OLiHEkzdCjUTFKTF3N16T0g2oQEfLjQTr5nfxILpsNpdzaatDiqmVCCIeqXcSuSnGk5M33dC59dC/dDtBunmmhjWDgtI6Cd4dHTiekiRTWYOhEF6A0+rSbot9Rj0BmVSjWPub76OMYE8NWudypIDfbg+HcmKwdHbliGgDEtzTASpW3cJPOpVxjUP9oXc2BzTQIyMF5uIgLkZcymV6+5jC/AW50PMCi8bJ4f3TDuWgfRWkreFzgHrgSd9GexE3KDp80SGbsLVJh0zd38/3j/yvkoPvDdb+cjLnx8VREP9LgWEeSbR8GAL09uSag3rjpQiZW0ucDQ+UTk621F8ZtNfsIAsU5loN5IRR1xHFsA+3TY9Ymvq38Hsle1RIUCVwQvA8+142tC4SxcSJ2HNaL+EcSNmZDfBrmT8tMt2sPSjf0eBpwRtg/TEITe1x1EnC1HPreY/KhAyKDweqptBTTCYQw== X-Microsoft-Exchange-Diagnostics: 1; BLUPR04MB884; 25:Edrl1wx4rF58/Qg9IxWlevm7AnxbZTd+EN3DYeGo6YFhWrCe1FX1ZCzBn1uBx+IknBUu5f52ARPdtGoE2M6EwNXrrr2akOZSyXQ0urVwcoseny2v8GIZBbeTJAyYCeCUQpb2aITs16BXdR6ftyEK6YOs4IfBBvlnhMBGb15mYmNtaumu6B5KI700QVaQkRuMEDK512F53pdKu5rq8zfFdpNQ72kiDZlCllgrbBFHZA//k2PgnDliqqFZFplfPUpcEJegAnvKAfwOqbV/YAxoxmWD/N2eH8QipK1Xqllo9mrAac8Crkpksqny3BW0GjJD6yD037bArL3kCmtdpCzS/N3KDzNvn/ZEXCIv6vlRNCkscIxKhbpvKJqcrIHXARxu/Td+0ftihsyNinP2fwHg8PEOMTYom4YnDzqcx80zI2ojcahagK7rMNUbFWLozpgTknGHVA66eMN02kQsNLDQSQ==; 31:dKDxAjEtwO9fSGjlLl6/K4rW3mro+tNUd3iPxbJgs29fo/0U2cYNLNDBYBAlgDmYkRIOiHBwFdVm59yBZgHBj+AVmqhhnPUAKqJjB19LA2tUcsx4pBB2eyTil40vooN9LpvKCoKv+Xz/dDU60X7bLuVLhnxcQDbYK1TKB0copTNHY7KhWBpMN3r5m1tUBxbWGAw7KYSxtK17Spnp5Np/rt0iUlTPa3lhyyHyVuSSEi+gXrF0TZ39/FZ7NxiJaJhEZyEYFkVKwPO519akjOpdihk0ZzmPia8Wignt2fNMvto= WDCIPOUTBOUND: EOP-TRUE X-Microsoft-Exchange-Diagnostics: 1; BLUPR04MB884; 20:HM9u4OoNLfN5gj50ydb+BRsx3NenkJ+SOZdNOAcNmqVruFTZv2LFhFcp/geXp71AFAiowkMgJGRLzEeG0T3JzrInGSj2Ak0XB/lsVNyo6xiakNP0hfYKmv1qBH2APiA6wJCQgrzFEXBr4Rhp69UfzHREbsBh+RqZBs+ZikjeZPNH7t9HxI9c+DB3zPaCQr9EHxLRH8uSVoZtLIy8OTnNNohMDYdgdqyUwJPj0C4HuGr6TXh4PG5hxo0t0jPabhUc953C8j3SgD0SOS7fBjXRRKsZHcQfyEA0Yykb7CBo1/1O3eR31RcFLfDI91nljZu1etNr4gZrL8g3MeD/EdkgziOYlU4fY7GtqdpqPcaY3vbZVvOZ2DDNEwyHtuUv+t9oF3svrlGf6sO4VDG7DramnBgXFY0m089S8hfGQp27gvEaAyf1OeJGlRWATYRlFM225rXo90VXR8SMXxnS1XiMRreDveUJu8h59W1ce4pBHNL7/0lWCZPh1b9smOR+BtzV 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)(5005006)(8121501046)(13018025)(3002001)(10201501046)(93006095)(93004095)(6055026)(6041248)(20161123562025)(20161123555025)(20161123558100)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(6072148); SRVR:BLUPR04MB884; BCL:0; PCL:0; RULEID:; SRVR:BLUPR04MB884; X-Microsoft-Exchange-Diagnostics: 1; BLUPR04MB884; 4:SMAw3EawbsQd/haok76aySue/bvgFZ7lVW38je7u13IWuYm9lHk4VATTDVy15/+WhyVHcElpkDWaAH827k8PRM8SEVbXM6hFBQ8BgQOt4Y7LHLLfKL5rUdubL+OkRV0Ni3CZqHkZirohdWfNinWBmBs2mDv7Xq0Vs0OxyvkBA6Pn5+E8gchSntqqYIotSVFk644yliw6Y/tqK7XSRGGpTm+QZXTIBYzAWVaWAsG7vhx6D0Tco0odD45hJbxdVzwLmU/H1qJXZGxQZFlMmkzlcL0thKAilCC6x60Iiqofb1HkzQWPOPg2q6FldlsExrBJI7MkDoCcHbqKwHdQ5wCXt/YJbIjASSvyWg3aUcb/cvjb9ETGCPEIvnLUtsQ+AYru/1d0zI/5LnSvos3igpjT4Xcb3gf5qwilRsTQvEahEa1QNiwNxCxwMwUGDDKh9bQUV5bxfoKEHxOJjV77u3KS7DUeD+VxQMYvbs0ZnqWnX1rCmfyUrJqxXHElLKKRpK7rsfs8k9vb7uJ4iEqwqKFMmo6tlM/NKisxF8wFQPlNtJontSwCVWfrSWH0dgAo26p06sxOK46kZ6YEGhIFsNYiL/KemkfJZRt+gg2Lzqg+gxY6S+kJ5LD1posQ2XT+J1VbiBEFJNjo1k4w8MXp7vDqQK1OPntd6sxwQvrA6bAw4lI/iAcyUT8DTEXtq9BZcOhiUoDA/vD4FnfoYbvo0QHxhFSXU1MXbALXRgxMRNLOwJ/z/BJG/xzYg0bwd2JjNLBuY2Jz9zkplwCXyS7uvANg0CPvT2IBhEUcRyM/+8LNIzZmNnYyiMjamP3UNe7uyhjh+v9/Kuv7CECjSMVgP9M1zZh3VEMuDt8bsySw8MzplTmg0yecSdJpcXdLZpJjsXgkOqGwjtzZ74bG2LHqw1a8/zPtcPY9tLWbUjyOPFVPUzw = X-Forefront-PRVS: 0289B6431E X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BLUPR04MB884; 23:97jUBQvmLHICGELFatlVI5SJaoxXGfKgCQaldn3kOk?= =?us-ascii?Q?oBaSmON1xTIsve3x6BMA7MLNv4lfJtBmpAGhuaPVQ+vi5WjXaMBCFoP1hDWo?= =?us-ascii?Q?QE0A3u93jCrGe1heVXTisung7N5TPjA3azo2FBX+Et6lRpCg4UC+UnLcWZq+?= =?us-ascii?Q?sYjum14sH3cou0OTiCAeMTlgzuUSn15DhOs6S1g3e1ZuL0KVAIyzBjbBAE7A?= =?us-ascii?Q?DxyHJcSRj7ONXfDBBGYwPCLYfmzFxeFzpxY2kLWtA6AyjLKG6juy91EJLP2q?= =?us-ascii?Q?WiCLxqESD7iObYClfMVS+lmkX93iEZWp2OIiJVi+jpkfR/w/h/nexumM/oLn?= =?us-ascii?Q?cmcImaE0N8TnqA6rbG9IlH9xb9553ueIA00KNI2vmi2G0mcq5zpHgdhPImZA?= =?us-ascii?Q?zBLkTMnftrPg3nkSUEP3Uv5usSki/qn08ROQCPrQZV+TOsLDcqxGUdbNsTr4?= =?us-ascii?Q?AnSK+2oc7Hz+Ibzzg817pPD4hxes0VcbtbEE6iLvts0Q8tX6F8fDSRK2qM/l?= =?us-ascii?Q?PYl+pD1s8Q+rzX5K88tBUsycFTLQ9hni4FeWMSXxkG/c5pagnC+MF8Ii51mQ?= =?us-ascii?Q?uc7puy2AK6dsld1Mpirmst4KozY9qbgmcZtydOJypOi9ceto72Mat4pSSXND?= =?us-ascii?Q?Tss6IRDwoKNgUH7Cf0UguySaPcQ6pmwc9liC0bDpmfQ1Ds9gFIUM8NXGTHp6?= =?us-ascii?Q?JvP5E43otpO9o6IFrDjppTX8NrFLnmi513c8fsw/WL0WYba9hAPGlrMmLIFs?= =?us-ascii?Q?BfQE3PFmtOgIw7XA3iR/Qf0c3KehmW/Yeextyo3qABTgIkfPbamfLHlF87cU?= =?us-ascii?Q?gtmF6rQz72WhTeWLZxi9Skxg8IcWeCUO6Kjdo7O05e4/mn099d/ZOMjUfn5m?= =?us-ascii?Q?LrAI5FG9NrGhbdw/NNIaXFVTdFwYA+aCjc5wRwK5uLY8CWEK0XS5t0k51DQg?= =?us-ascii?Q?WOryEYso9ildTqApSoIOy7mQ1bN3csSnwszXmMGaTwe262XT1Kc4KrSocPHL?= =?us-ascii?Q?kYkmiqlZOgg7rEn5+dddS5r4nHv8vBxM8Uipap8/PJ+w=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; BLUPR04MB884; 6:WOQUqXS2e4me/lCIs5M8/hqkv7Uw5igFFlQnrQfsjRU2rAAyEcH9qnQ5QBvax6QKDkMi+Gb0fRn+/mF3In121y+xS/feGb6pebybbn19xg85sAEHJGMDXMnSFN7T0CKT146/an1qYy9akzRln53LkbY5tHCVFhKiDBpTfIKi5X5Mc16l1X5kBagYPZLzsVAsoUQyBrF82WRNQUr05hp+hEnz5vLjyXgZlI8/1K4gWpbru7IrGiwFNpFFDd7kyN/ZvnplnnsxcTbWkDZce0O9YhusLOPKCVOGd58QWVSLOofO3xIzc/3KN6df7HWpr0fT7ZL2u7qEJRaxAUVyWN2C98WitHZiS3qDYhE+2K0cQw1e/cLO0WAjvNaMS8QfMjrBN+FDKgh902Er7peNvhN1JLxAD5qQBA3H6vBVoQMuWTNiEnI9tvd16lLB+6QNDKprGrpDL2DGF7JBUziscGfnhwFqyRDwTXm+xiYBHoCYOTE3W37pyzEJfuF0fg2EzcWSNZgmDBPmAfGp29k0R6n4BSM0Up3kbHM2ivzShOyMCQ4=; 5:utoZdpBGg1jI7SMgrgllyV8QPDDc6ZYlx1a0uY/XiULiQP8fLR1V1DupM+uqz1dGoX8mofQRoe8+9SQtZ+161Dxiao0fh90lrpnVeMBBsRDm61yBQ3BgFIGw/Z43BLdGfXKcci+jVoGTwFRONnfPFg==; 24:SfGQT5OhfNhFnmUvIYC1ql3x6VYedlCE75halFDeQ6fTRxlrtyIKjnuJu1hnIswR0hOnWeUug7S7IP6JPXKhXpDsqxi+bem7W1DBrxCtUsk= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BLUPR04MB884; 7:MmhShDbjJs0gfkYkvlGDpNboqKuRAFVrIcCjadKFth3GJxS5YLWBloSs0xXD97EoK67hccoNu0Hfk37q20AwjP7EYlLWz3Ze7TwZ5vDydddSbGZKdYrjIi3/Ob9HTbW2K8qnL/55AyPql6+dJZM0HXgMFpxxXok7g+eHhfFG9Eo4HKduRXuKxMj2Ytp1kMX2x8IhE6s3aCROPMGc2/it5o08jc4zofi5G7KtsacNh9pn7c3J/LC3w4W7ovz8Cy3YwIdvKMqe46OLpKTZ02Er6KcnlO7lY4g66g1Ty0GMWrcB63H129o8qVLGiRnBpTSCR4McWin5D2Y2luhNZHmbeQ==; 20:/EdPkJqPv9BXA0vHxrhKObSzhsPDsYGew44uVzavTCeF8S+aTVknoyZJGRFlKay/IoVfU2+XEhDRdJjYiY6BZHXcygee7d4OvCqm5N4aXXM9HtbO+5nbOpuiiBbGt9dbV3iOEtGHh6GasnBq4GgdyzBsiSCvngBsH0+PZF6HCDo= X-OriginatorOrg: sandisk.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Apr 2017 20:48:04.2485 (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: BLUPR04MB884 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);