From patchwork Tue Dec 6 19:07:45 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Madhani, Himanshu" X-Patchwork-Id: 9463145 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 72B1E60236 for ; Tue, 6 Dec 2016 19:08:34 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 61F91284C9 for ; Tue, 6 Dec 2016 19:08:34 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 56DD2284CB; Tue, 6 Dec 2016 19:08:34 +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.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,T_DKIM_INVALID 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 D85F8284C9 for ; Tue, 6 Dec 2016 19:08:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753065AbcLFTId (ORCPT ); Tue, 6 Dec 2016 14:08:33 -0500 Received: from mail-sn1nam02on0059.outbound.protection.outlook.com ([104.47.36.59]:56361 "EHLO NAM02-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753154AbcLFTI0 (ORCPT ); Tue, 6 Dec 2016 14:08:26 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=nqZTuTeRTPYY9gVAiL6GzDoGYsdOZVDO45qdOoujYic=; b=G2/kd9bg/Byaobj24WMeWBQ0Jurn0/ATVS8xtYO06S7tTAe6xDJ9BFVjL3mbTAN2giwYAaKcstJSsSVKsmAo5IKYZlOKuPEAu28wK6zBZb/w3045Cys58wxMEssNU3Y4tmSyf+y32WJdgYzqqDGfh3ynx79eZn+8Ng+NkxROJAQ= Received: from MWHPR07CA0012.namprd07.prod.outlook.com (10.172.94.22) by CO1PR07MB206.namprd07.prod.outlook.com (10.242.167.156) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.761.9; Tue, 6 Dec 2016 19:08:22 +0000 Received: from BL2FFO11FD056.protection.gbl (2a01:111:f400:7c09::195) by MWHPR07CA0012.outlook.office365.com (2603:10b6:300:dc::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.761.9 via Frontend Transport; Tue, 6 Dec 2016 19:08:22 +0000 Authentication-Results: spf=none (sender IP is 50.232.66.26) smtp.mailfrom=cavium.com; vger.kernel.org; dkim=none (message not signed) header.d=none; vger.kernel.org; dmarc=none action=none header.from=cavium.com; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) Received: from CAEXCH02.caveonetworks.com (50.232.66.26) by BL2FFO11FD056.mail.protection.outlook.com (10.173.161.184) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.734.4 via Frontend Transport; Tue, 6 Dec 2016 19:08:22 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:; UpperCasedChecksum:; SizeAsReceived:1092; Count:15 Received: from dut1171.mv.qlogic.com (172.29.51.171) by CAEXCH02.caveonetworks.com (10.17.4.29) with Microsoft SMTP Server id 14.2.309.2; Tue, 6 Dec 2016 11:07:50 -0800 Received: from dut1171.mv.qlogic.com (localhost [127.0.0.1]) by dut1171.mv.qlogic.com (8.14.7/8.14.7) with ESMTP id uB6J7nt7032411; Tue, 6 Dec 2016 11:07:49 -0800 Received: (from root@localhost) by dut1171.mv.qlogic.com (8.14.7/8.14.7/Submit) id uB6J7mvR032410; Tue, 6 Dec 2016 11:07:48 -0800 From: Himanshu Madhani To: CC: , Subject: [PATCH v4 5/6] qla2xxx: Add Block Multi Queue functionality. Date: Tue, 6 Dec 2016 11:07:45 -0800 Message-ID: <1481051266-32362-6-git-send-email-himanshu.madhani@cavium.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1481051266-32362-1-git-send-email-himanshu.madhani@cavium.com> References: <1481051266-32362-1-git-send-email-himanshu.madhani@cavium.com> MIME-Version: 1.0 X-IncomingHeaderCount: 15 X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:50.232.66.26; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(7916002)(2980300002)(428002)(189002)(199003)(189998001)(33646002)(2906002)(101416001)(4326007)(76176999)(80596001)(50986999)(69596002)(86362001)(5003940100001)(110136003)(107886002)(6666003)(2950100002)(6916009)(4720700003)(626004)(38730400001)(8676002)(81166006)(81156014)(92566002)(8936002)(48376002)(47776003)(5660300001)(106466001)(7846002)(36756003)(42186005)(356003)(2351001)(4001430100002)(105586002)(50466002)(50226002)(305945005)(87636001); DIR:OUT; SFP:1101; SCL:1; SRVR:CO1PR07MB206; H:CAEXCH02.caveonetworks.com; FPR:; SPF:None; PTR:50-232-66-26-static.hfc.comcastbusiness.net; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BL2FFO11FD056; 1:rvvB+3jUvTq4zlKFA15lZEVqkqy2B/RCBQM9LIWBpgdDUd3uzzBF+CpiOtJrqRqLZUflRH+Oz82OStUG3KPTMLuwlPJuzh9vqAXJ7bQ5l4HGIuNr/RSmY9ocEWJ/lngPXQHVjUePffF63yNqvm/13TF27dUMn/kH1czGZv5NKe3bxD6fsuhA+Y0aMcIp1vJ2rudRXCmhF/dS3smOqcVbCQXAONN8GWUeNUVRYG95e509uZilBnpzg9RU8as60IvcQH30s9x1UwN1Cl6pabiGs4zGckhXJLDszOqwEcGifcHjkPhosycRTNzbiBbb8hjA6asAgs/msMpPxU8A12qYBsInTnOjvska4Blm/Np/NsgJ6w7MBfzdsRgyTgYPQwk8LJc+5PiExRHb3U2cbKHYluq9HfxQS8LOtKRxWIwOt/4/3RQS7I2v5bLG+bwz+VuMiqMXkClP7t0AfhvQZafyhp1/SaOnBqbj6dFULXlMEQFTHTlbdNi866kEDhu1b6NTmnrBGQpta2DPY7DuWZW70aS416MYMniKsckt4sHAOspnJckgTL8jlhhiTDK3UJu1 X-MS-Office365-Filtering-Correlation-Id: 564c5b85-4412-4ed2-b02d-08d41e0b3fa3 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:CO1PR07MB206; X-Microsoft-Exchange-Diagnostics: 1; CO1PR07MB206; 3:4r/tQbmycVR1EF4RcltglGgKPh07qXlrohmj4MGbzgzdWMhC1xE6Yu0G7YE8k70vs2LvVS/gKz/F/R+rnFxcKFEgBXm4IcyenXsb4hO2+hnRhEyEPPLAWdO0W6HoNV9uxtL9s1gDwAXyRxOxdpuTlAXRm5fBizYtLGuC+HICmZVIbIZteY3/JAt8PArTllVMtk4LmsiqSxboiMQP4+c4aMmRKyi0M6LQJnMoO4iS6J2agNqJcb8K5zNALfUk7JA4Gx9YHu30VHgtIaQtZXMinP56fAbjUhtiQtMvQiQVF9SEqIBW90uVccDi5oZSIhNB4QXwiAvlTUySb8z65hlWvtJP0DsC9JG2z6zdkFgRCYxiA/+mycIPCT8c9KR3mRVe X-Microsoft-Exchange-Diagnostics: 1; CO1PR07MB206; 25:eAdfExxRWC5tRXK9knR91UhkU/ihXa5sE8IHwLueu+2tsdeoYIsLcIqB/2JAmNUl/eMjA0U/jcIIoDLIxgMRlrnAm3Hri2suAiAF1w32PdvVgKcfPO40WwxXav1mHx2HA0xB6P4tixrhvai42il292juYTVrTPK3z2YyZiQD6clND7hp/dC8sno//DDZlBsfMDEfpLO6XAH+67+YUYlc9WyIN7jgIHVmeJvV39ts0M4RGWrjNUxSLjx9jU4IFrKlxzgj01cG024uWHfFbjWAAExgGEG6SFGFQs/kD1Z76TWhuy8m7NCq5Lys0f0zEsLWWxRxtxWv3nDmvdsWsee6s8+NDDTDNHzDt6FUZC3/ywTA1e4YCZxP4SQwTdR32b6/mDJQ+2bVjxSJJJUsKPsqSlaaz4M7oxJVokvZjJr0tu7j0RLusF0kqVCp/cvXHe/qTxO573BJsphVb2vP0HCTeVXkk3KWgs8QaMbWAg15c6IAYJBuuGrRCuhnVH9wuaPPcqXkV87zPx7CHf/tFDWD/gsz/HaauKKuYKeyoBNrByd5zCxqIbkIRFYjztuJI0JKf7Qge4cEEsGr7FSsvVQ1QkUmnkPcoYlAEIktwahgMifmTQ0oEyX1UilCbykLzabysrM+LaPmuB1VPPnS+GEzVfjTI9Ars/LpyXIhlgfOxJzziR/7w3EbCepIqv2eMUmTVpHbOWhAUPKMe0ZuTsbQMsiqMOWbS7UKRh2lDLUhjXzEmZgZJPNJHVtz92X9W5XK+iFQvuRBnO02KaxdLLbGxXEPjuryyo2qCSErBDLxlGnzBTzYPJzy/+5SPvwa7yBUSaMIFjMcvrc2xqt4fnOC6He4AI6w+3uGrakT9TczrZc= X-Microsoft-Exchange-Diagnostics: 1; CO1PR07MB206; 31:JeSP668gSs1rZGKQ7I8PgirlTkO63h9xqcfWsUEHo7JSk9GfMltVINi5vV7JcXoQK8fSCX11H+MeN3EVvMba7hDrdHSvmgcSfek9lAXEow7TjJkjg6PrC07QUpjjz6IhrdvYZ4XLy+HejBmlefLall5JLY3eJK6jzQFJamxo7gfXUdnWW1z/q2oBle+GD/4Thw0YbSK3/TD0fAUWqiGUAX5ZDMxk4YLTXU7rZqJDLttYC3jjzkg+Hp3vRlbpmDNeSj+XvNqOuyStrgA8K5Sxig==; 20:e5GfYnBd3q0yTX5mGPB7EvhM61lGf8mcH5hU3OxdzYdh+3m+hJ2ThwTVYXyn0bAf65k3kJDTVLW7oIbd+sl634R7dD3Bf0GvBxD137e6omY2Rg+7q8Gk0EBtwVOZAmYmWch0nOPV8uHvI20BaO0dfeegN4y+S3IHjIhgbaJZPXIWhc8UHaLbxcAyIprHv1xgm3bNLgtWRNsTws8hHQUHzWrRj950XYq1cLW4Aie5i7JkEwIzM2H0rbFoVEPjI1zDCVUd0T4BVi4Ad3LSl11nTvPTZDzEJNCQ/WXFsZjLiXo3mEdBPhSYpbt9bDnB1qtVSKyZ+Royafa6BMOwRiDctmxWf1Hz68M3yf4G/9pQQWv1HZDlXWzOpFb+nBlIwtXgPvIZPxSQ6GusCjM9SEE/fYu2QBiWWr5Kc68Ko1AmZuK9DuCNrAThkVz2DpZdyD1RGcxu+Wqe6EZI1XxfpjGsaRFAxQ3zhgdFiESRcu1UWfOUu6qERjEo8j149qn0WmTL X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(13023025)(5005006)(8121501046)(13015025)(13017025)(13024025)(13018025)(10201501046)(3002001)(6041248)(20161123555025)(20161123564025)(20161123560025)(20161123562025)(6042181)(6072148); SRVR:CO1PR07MB206; BCL:0; PCL:0; RULEID:; SRVR:CO1PR07MB206; X-Microsoft-Exchange-Diagnostics: 1; CO1PR07MB206; 4:ObYaHORbygHtqW0MVYEmyUVL5fOUIM4KsZS3Bp640LhStguDZxXjcDRLDl8orhKpMog489PNpUp8xbhkFWihjrPsM86FYTL34j2efQLe0fTE0tVWAc1IaxI37oS1C8yR5Zdm+LaziPxRgCrZBkI+qXqmnzaf0lFB9RXBO9LF5wPrZ+B4L2JIMpLOGnTAQTEZsBTR3vCSKeA4rXdztLTcdoACjE378xfM8PrIE6yZ2P4VT3cdlHP7CXkBDpkzxhcGGidDjn67JUzKGbMF5theOzcJj7qYoYB3WB5MANZIEyPAlBHSmGnIFVaG2mqTqkdvztUohKoRn05ngPuPWcGY9fXNQfqmh72+JhjeOL//mIMeuG0+LsVFbR1HWldWL22I+F6EBg6c5/K3FpPiFb5hWNRf//VOOv9fLK25vYF0uf5MrUcH6DWYY8X2dMQ4brBt2uBR16AusbadmvLxoPpHzvi/VFOKEL49IuecuzZ7LC+Kz1QhlmPG6xQzwCP2O7PCOSBS7DBXWvdAjQ2kA7DbYZQLd4Q2v20IGxXWvhhQAL7BzZVW0NcRcredcaxvqUOejxNunMl9N9SHxfTd0+3tQedn/5XH5Q+g7fwibpzTRl1ushA00vP2bdsH9ODEiFCAFPQa7k4g4bJK5z3iI/6HFfOyKcSt0B0PRnszUlE76zVF9ZkSEcdMx9qrVoHYODy+ X-Forefront-PRVS: 01480965DA X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CO1PR07MB206; 23:U9JT9XEgtiz8VbsLr4qgQTRgYmbq2R+l8VV88BY6bA?= =?us-ascii?Q?+MyHczhRiY4ow/wKx9l0D/KH3TQ1ENI0OwTp310eZi1qt3Jw89FU6H68OXGw?= =?us-ascii?Q?74qltUJmL6ah9d5UZ/Xb91JOBeDWpTgLzYrkXw8T+pqgliYLunvHudfNOyfU?= =?us-ascii?Q?9TYfSh6ywHvclMjgIBCtpbboBOBuTBe4K22wwxZIYh7Vta6Jkf841P3H8TBy?= =?us-ascii?Q?yj+K9BA8lkf5ibVUJCtVFO4RzJ576jBozDiNV225ur2xAdkbluH0yaFolVOH?= =?us-ascii?Q?DmVGDZ8gx+o8Snupa+tq7YZTcil6oo003IziSNeKrYFYN+pRY/HVlHrgSaa2?= =?us-ascii?Q?Og9HD8G2tp3wqNtZwsauZN+djAtCD5ULSNyUjR97Mu/XdQy2JqN267nV7gyM?= =?us-ascii?Q?1F+OHxuNi8c+4yksXsCzNG2fL/CGQkrc8G/Pm6droo0M2ZvEIHqSNQXyQTJr?= =?us-ascii?Q?rmcRQzjsKEt7eeVUkeH20mc+vRL7Ycqlr2mmwJkruDXYqYxqu1PdvzxkLI/N?= =?us-ascii?Q?p5acS/XqS2Zh9UoDas5MvX1XuPWVsVUdqCNs/bB0DnuLiJpQxxpGdRMXk4Jn?= =?us-ascii?Q?sYX1P35ZSCmCCaqshLLyxl2ShfE2pPXV3eT5z2W9Rb5sT9GI3uvzwQJ57Am3?= =?us-ascii?Q?wUs1uPGU033FLhYPkWIZzlqPRByMDLNXAB+qn0a50N1ykGZaCjUnxnHmF3Hg?= =?us-ascii?Q?lsZL3MGFaXx/wYfiHlypqtji5aqdbpbKc1D6X5wnEVbf1tT+lkUDAiBeTE5M?= =?us-ascii?Q?PLory607RqSuQLaN/kxtwtcqhxFupYNfM3AhQbq4kbWGEb1qKD3Cpiy3D0X7?= =?us-ascii?Q?UgiDvfWK6pu4LwfPWgy2+qnUzUzCRSdkMkmKBU5N20pD9g3Fl7g98pjSeWr7?= =?us-ascii?Q?ZcPEdoJrqz/HnJxWMzwjIJLEaJ+VBJmsnhfZ9iA5pjFrosoqZApLe+V8eXMa?= =?us-ascii?Q?SmsZbgWWcxP5ZxlljI36EmhffZ0X1ZYZ1Sj/wQ8Cpa2VQptMK4nJxVIGzcGR?= =?us-ascii?Q?0u0NdzJUTHIyeTt3t/IqfubaY6csSytsM3iPG7eNzl5bOtr5qogl+kVnkEvj?= =?us-ascii?Q?L4Q23CayZYtEhfIGeFrxy/+NktqKlLiTwFW8VKogajyo5l3w=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; CO1PR07MB206; 6:mDVkfFjRV4eRYLQgzmsT+sHwrwy2UybAq5LjGMroMQ17zkckRBWgKih9Xb2wyKCPLCJH+8MT88JVI5HCm5G5beyrsCZVgEb5y5pH2PZ4F8NCJMeW/hHQWWAPZOxOxEEnIRUm4KjxIUveoHXhWSfK/PihdgjAW7w3+MUmRjDaUEV7ezImO76ghaao02NOX9rUVlxcQTe+M1eLOaOjt/vjWLUVHhQo7E4pLxYjCCYMvrhnXNw79nYRmtagcpuLhE9Yk7RTNZH7xPAHpZAbpnbllIIKdDG24XTnyTJWVZHdFv6LV1f+6URjythhYu8YBGVJLoOr6RlvtmFKPzHcQdFrpp2OA9wnlsHLn03hc2Yznldr0GSSGzoPVNPZ1SrEmtZ38xVG9LdjMpjHkY65bxRR1JTApK/Pu6TNpV985dSQB3A=; 5:KXRXGoWKiwgxQQI1e2LjWeHXDJ8sgHir206uOwXiJtJLwf5AwKjfj3m8sprWrSe9N4whUWmPgrZtI3chlBAXgkPwzJY5pp2apzwsL5GGaEAU7jSQ0R34hniRcHqkek4tSK2AyuvAzsry0XrpnH0OFQ==; 24:nFc4aVm80gGBzMTv8YIxQ9iVhEeCqXRMywVp5mdLaxO7ls3Zk3MlbpWhXHu0DGxt3NK76F41GXMA9i3DSEpmUw2x/RRg73UIOtKXEKN0qUo= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CO1PR07MB206; 7:nYuKWmGfr4a/fhITnUeEdc0SdedvSST0RcAMVxVluw0wSOTzurtcVvkrWmLG1VZywT0Vr5LkF9Xmu/7L7hX1YCU4RN0CQLsuxDSCRkhJo6U7ORzf7PvwHDgnxrRSrW2zj3kyu4x4Pq1Mztv/Mj5LvRdPzJETL9EyTLJS6qpaOzaSomtmbpaQ6enjUozS+2+BnAxbPXRjgc+TozQT3TBoXyeuAjsRBxO162ziVJZKVh7AHL5FpjUkZ1Q+eek70zClBGLmDTOH1XtNi6AediHCKdwmECoUEVkhtyYMXK4uSB6B1KMjMV2OPyVAFueYGfvB2xeJAk+sLEYx0djwlKsVJCp1OvQ2b4f9Q17ZKTBKRojVIxooAE3sdi52S94/g+u0QkLjTGQjdvn29LwCmqi/AhWTjyk6W4nIODzepSlwAjNWWoDAP24jBsPXvr+SiVKe4pfPLdTt5qvrIghn2ES47w== X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Dec 2016 19:08:22.3660 (UTC) X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=711e4ccf-2e9b-4bcf-a551-4094005b6194; Ip=[50.232.66.26]; Helo=[CAEXCH02.caveonetworks.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR07MB206 Sender: linux-scsi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Michael Hernandez Tell the SCSI layer how many hardware queues we have based on the number of max queue pairs created. The number of max queue pairs created will depend on number of MSI-X vector count. This feature can be turned on via CONFIG_SCSI_MQ_DEFAULT or passing scsi_mod.use_blk_mq=Y as a parameter to the kernel Reviewed-by: Hannes Reinecke Signed-off-by: Sawan Chandak Signed-off-by: Michael Hernandez Signed-off-by: Himanshu Madhani --- drivers/scsi/qla2xxx/qla_os.c | 37 ++++++++++++++++++++++++++++++++----- 1 file changed, 32 insertions(+), 5 deletions(-) diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c index c5d0525..bc7008d 100644 --- a/drivers/scsi/qla2xxx/qla_os.c +++ b/drivers/scsi/qla2xxx/qla_os.c @@ -738,16 +738,26 @@ static void qla2x00_free_queues(struct qla_hw_data *ha) struct scsi_qla_host *base_vha = pci_get_drvdata(ha->pdev); srb_t *sp; int rval; - struct qla_qpair *qpair; + struct qla_qpair *qpair = NULL; + uint32_t tag; + uint16_t hwq; if (unlikely(test_bit(UNLOADING, &base_vha->dpc_flags))) { cmd->result = DID_NO_CONNECT << 16; goto qc24_fail_command; } - if (vha->vp_idx && vha->qpair) { - qpair = vha->qpair; - return qla2xxx_mqueuecommand(host, cmd, qpair); + if (ha->mqenable) { + if (shost_use_blk_mq(vha->host)) { + tag = blk_mq_unique_tag(cmd->request); + hwq = blk_mq_unique_tag_to_hwq(tag); + qpair = ha->queue_pair_map[hwq]; + } else if (vha->vp_idx && vha->qpair) { + qpair = vha->qpair; + } + + if (qpair) + return qla2xxx_mqueuecommand(host, cmd, qpair); } if (ha->flags.eeh_busy) { @@ -2520,6 +2530,7 @@ static void qla2x00_destroy_mbx_wq(struct qla_hw_data *ha) uint16_t req_length = 0, rsp_length = 0; struct req_que *req = NULL; struct rsp_que *rsp = NULL; + int i; bars = pci_select_bars(pdev, IORESOURCE_MEM | IORESOURCE_IO); sht = &qla2xxx_driver_template; @@ -2885,6 +2896,16 @@ static void qla2x00_destroy_mbx_wq(struct qla_hw_data *ha) goto probe_init_failed; } + if (ha->mqenable && shost_use_blk_mq(host)) { + /* number of hardware queues supported by blk/scsi-mq*/ + host->nr_hw_queues = ha->max_qpairs; + + ql_dbg(ql_dbg_init, base_vha, 0x0192, + "blk/scsi-mq enabled, HW queues = %d.\n", host->nr_hw_queues); + } else + ql_dbg(ql_dbg_init, base_vha, 0x0193, + "blk/scsi-mq disabled.\n"); + qlt_probe_one_stage1(base_vha, ha); pci_save_state(pdev); @@ -2985,8 +3006,14 @@ static void qla2x00_destroy_mbx_wq(struct qla_hw_data *ha) host->can_queue, base_vha->req, base_vha->mgmt_svr_loop_id, host->sg_tablesize); - if (ha->mqenable) + if (ha->mqenable) { ha->wq = alloc_workqueue("qla2xxx_wq", WQ_MEM_RECLAIM, 1); + /* Create start of day qpairs for Block MQ */ + if (shost_use_blk_mq(host)) { + for (i = 0; i < ha->max_qpairs; i++) + qla2xxx_create_qpair(base_vha, 5, 0); + } + } if (ha->flags.running_gold_fw) goto skip_dpc;