From patchwork Fri Dec 2 21:44:54 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Madhani, Himanshu" X-Patchwork-Id: 9459429 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 C75B46074E for ; Sat, 3 Dec 2016 00:21:48 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id B7BB828577 for ; Sat, 3 Dec 2016 00:21:48 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id ABFA728591; Sat, 3 Dec 2016 00:21:48 +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 018DD28577 for ; Sat, 3 Dec 2016 00:21:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752954AbcLCAVr (ORCPT ); Fri, 2 Dec 2016 19:21:47 -0500 Received: from mail-sn1nam02on0085.outbound.protection.outlook.com ([104.47.36.85]:51184 "EHLO NAM02-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751033AbcLCAVq (ORCPT ); Fri, 2 Dec 2016 19:21:46 -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=deEBnH3FXwvBcrxStxCmJVrddMR/FSmZg5K6VDE5LAM=; b=Khahz1d3CqtjMaKAB88z4OpC1zbzPSvFrKJnI+GClfqN/95NRfxnv+6aQqfqnU9z0kOFow3SmH1aUx1iWjo5ASOO7rMwVMoL484ZlCq7Xr/nDmqFVvEoNb7xnOX91yhAtFz6ZXp9KwvpoS4vQIfujMTTdafNag9Bixply08oioE= Received: from BY2PR07CA0029.namprd07.prod.outlook.com (10.166.107.24) by BY2PR0701MB2085.namprd07.prod.outlook.com (10.163.156.150) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.747.13; Fri, 2 Dec 2016 21:45:16 +0000 Received: from BN1BFFO11FD039.protection.gbl (2a01:111:f400:7c10::1:118) by BY2PR07CA0029.outlook.office365.com (2a01:111:e400:7bff::24) 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; Fri, 2 Dec 2016 21:45:16 +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 BN1BFFO11FD039.mail.protection.outlook.com (10.58.144.102) 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; Fri, 2 Dec 2016 21:45:16 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:; UpperCasedChecksum:; SizeAsReceived:1113; 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; Fri, 2 Dec 2016 13:44:58 -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 uB2LiwBQ013652; Fri, 2 Dec 2016 13:44:58 -0800 Received: (from root@localhost) by dut1171.mv.qlogic.com (8.14.7/8.14.7/Submit) id uB2Liwog013651; Fri, 2 Dec 2016 13:44:58 -0800 From: Himanshu Madhani To: CC: , Subject: [PATCH v3 3/6] qla2xxx: Utilize pci_alloc_irq_vectors/pci_free_irq_vectors calls. Date: Fri, 2 Dec 2016 13:44:54 -0800 Message-ID: <1480715097-13611-4-git-send-email-himanshu.madhani@cavium.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1480715097-13611-1-git-send-email-himanshu.madhani@cavium.com> References: <1480715097-13611-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:CAL; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(7916002)(2980300002)(428002)(189002)(199003)(50226002)(42186005)(4326007)(2351001)(101416001)(33646002)(50986999)(105586002)(26826002)(106466001)(2906002)(86362001)(48376002)(47776003)(76176999)(5003940100001)(189998001)(107886002)(38730400001)(39450400002)(8936002)(7846002)(305945005)(69596002)(4001430100002)(36756003)(92566002)(8676002)(81166006)(81156014)(2950100002)(4720700003)(50466002)(6916009)(5660300001)(6666003)(356003)(626004)(110136003)(39410400001)(80596001)(87636001); DIR:OUT; SFP:1101; SCL:1; SRVR:BY2PR0701MB2085; 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; BN1BFFO11FD039; 1:cZDIOyLUjKIKYQJQ3B9SUl0430Zfe2QaAwmBLE7HtGUCgW9Tj5yu5drGc/C8JjbSwTo+UAPoYFaxH1xNQ0kBPKr18sjHR/jShxmi21vorsBFux+5JGoIlzUaZNq7duE/1jLJJiBWjUEEPgw3EXbaQJFQXjwCUTHAxSMawuENJAZUvZo/h5CKX9nWwlFhe1027H/EpYCY+5kyfolgNDntmnM9WAAxA8CIvuwWuv2yQBEbqywnAqkyf7hOKzc40871RCdqWJHO/lNhZNvUxhpMzJM+A1H4klNbBmx9PWRJ8S7S3i0e+2jXrrZNdjysRvz4O71n5xCxMgRpoCbR6F5OyzJNgYPoM5V2XSfOo2kqZxsSSp3O7X2Vb5nL6bav7Y7BCKER9uuaXAcGsPSetU08zg1cU7Zd3s5ymsCYo3OORICHKkLZZz7/1/awypYb0G5fmsJDitx8WHFhtLVGTkdYaW9OZWhY/XIZ8Y4y0MmxV1BYEYBV3qAedBDe05nmiboBGdKdq4fG+RYLndG6T7vCJw== X-MS-Office365-Filtering-Correlation-Id: 04138558-711b-44b1-8f1b-08d41afc8115 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:BY2PR0701MB2085; X-Microsoft-Exchange-Diagnostics: 1; BY2PR0701MB2085; 3:+0H5SK4I5NNIJQKj7g0D7laj/4Sl6F87yj7G+mwK8E86U8ReihfE+dhZGrKWr9UHDPYkj20pMYMYAaqrzLxZqkFrCOc/Xw8lE3BUt6xnmGrVuepyA7WSiizUfSLKiC8tAKvguyM3luZZxzRXuSTF4Rl9RS0wcdzpetoWn7SoAQqfkYNNaGpTEnDtg+5xawOOYjwIvwSlJWfmYhfb/pPV5ZrEGPIXwQ8QH8ABV0th9maJDbV0aE3MLchWLtw6HMOMzuz5+p2qMhTaczs/frpn5m4LWwNwy5p9cgpKI3M2GQVQwVgPsqWKNvrW9QFgRTA3HwvrYEroiiRUYtcdzmOp1CFRgtenXCxQDCRXO0Sv6epOjFqMxWrwFFBHy+yQVNjB X-Microsoft-Exchange-Diagnostics: 1; BY2PR0701MB2085; 25:DGvRXRnniqHjGxSA38uuEriaSeJ9HzMFCLdvfyjRAr/zDSCXfEnNeQ3+QtKBdkHSJzVsAYoHbK4y8R3uFUjwi7hmcEJzCiDtNdqe0cxIOlkpXeLoseev19YSATP6cT9tv+V/tLBxvePqKUFjwJZrk2Ly4ozmzwunABHFf+JFtC5DzGgrPv1CHj/F4EgHyqsR4hk2sUMCpw1QNw3XFQl438n7EHQHX8ePSa76ANx9AQcrF3cMmsd3sTzkf4oXdPmOozT0C52p8J/HABZBzPrL5YI2GcGpSsKYp07p3vxvBmhYuyJqALo1Omi3B49SrzX+vN5SxKqx2hZUYLnw2CbAq6sP4eDB7XqQCwIr+cL8r+aU+HJ39yxOzikp9c2LdXV2kN1z9kfGuNuIweYCyO/Qq7+WlgHwUt01dM5c4BApDhc4bwzKVpideoDi/BNEs/a0oCz0pmXpCWzoptybRxoS7JKzGiHZhlPJIqyqruf0dcfMULqouOnr0daxogYq1mRq2BoXpKPV28si+WzO8TrkTlZy0J7kZ1pSnCeho0+Ly17kwvi08dILefHHJZkifCQdItZuYrtJ7oyIDexdrwuqIYBJETKuP5qRpcLOvKgM8SMuJSt99Xj1zQWIkrG6JJvyETBhWHdtM4YKIGhoIpdogRpszRWTyDXRU4UaMf5Lsv0XCDaQ5No8HMG7XVm1HVep8Txfym5cAT7QdpOrWTn/SF60GyBJF9DLjvfyL4NMbpE+SFoU5C9kR9ejehKk8oXZSn/vjm4i4CpT0C8qi2z8tT9phFSZHrX92q7LN6Z0SUu7pQfotXf7jXxM/lARIfwfOPYXD35kgBepoLYt/R46EmjvyencgUxZ6UxsJj0/830= X-Microsoft-Exchange-Diagnostics: 1; BY2PR0701MB2085; 31:JX9u3RRTnbCP5L4BqIT3K6/jpa6+jJPn+vo8P+eepAaiz1h6v+dV0MsMmjec4yEyb1OoP8jOGQCC2AumkNzQiAAz2/+j9FHCAVe9BvbkYJa1Ylskye1ezjy7pCGhoIlSnUUunOfiRYZXIsHZNVVuhr5rR8AcJrD7z+ngwJY2LaPLxAxf2uC0pqvZXAn2A/X/33j/aWWW9y57VkQMTqPqIO/ZphjTektwVw1vGWchh3yfW9fAxWwdV2nX/gWUI8d/Oz8xW3RV02xUoTVVhy1V3o3xCjuhAqNuwCXBtaUKxfk=; 20:rNvexdLtwMslVuATpPFp5TYIxHPtItNML99J4hM/4dilaWq6HGLtw7bRR5GL6RGje87wyDEHWiR/vLhI8OHwlex20Vi9/xT2UtlXkqa4wG+zKQwmD9t78CPSptunmdNASuDFBlTyN/GX56xFyCeE6LtjeqICq2I16X+D2D5Zx7wOEof5GTEac30SyHFxIqAvF1n5U8FBNw5FXm1dpETMtOcOfG/xP7tpmkhWEhDCMerfrH2Mr1IStFS7NE5Qeui9pU6MhjzCeKnNnGLFoIiPdtKS72RQB2qVe/P1PrEWcctimulMTBoMHi1SmwKvIyBrSLZt4Wdi5xPJEeljxlmtpnAKE+sg4/Wl/jlDXWfrMRYXZvdDT5HMsZ3Gcmajn3Siu9MCjGp7SkIJAy8vBXmoHXfhVCo8tJA4G9WVs60s+Ut81QoIJEbKCWHu91oRF49CRZjfHu5Rd1pdwLlhVhQperuQHpkAx6IZwmg9EQqN4WR4SzLAhRR/Whi2OeIUIQ/N X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(13013025)(13023025)(5005006)(13021025)(8121501046)(3002001)(10201501046)(6041248)(20161123562025)(20161123564025)(20161123555025)(20161123560025)(6072148); SRVR:BY2PR0701MB2085; BCL:0; PCL:0; RULEID:; SRVR:BY2PR0701MB2085; X-Microsoft-Exchange-Diagnostics: 1; BY2PR0701MB2085; 4:R0dfm2pNErz3gvDaKXuwU49zFjJ7OHLUt6rM3XWJpUQgqxxlyGaLKEkGDuHRGzLME+bNCd1ci+M0PpJS3X0si+Z+GZBJ+toXWG82nWqsVSogAuP0+YWTVRL9iM425XKpMhj5d9al8wyml7PRo8JUe8cOTtaP1mC6bJ/ECFK4TOihf3ePH2zl1Mkg4qCydpbAZNTaoZvW4xI1I3PkxopD0JrAb/Xjgu56lj/M8oEQvhyXErlfUF9fD66N1FVXVAcos67LxZigNvE9pAgK5XuJ/1r7tfjmRuQR50Ws4MvklxoEkuuQ5e5YaNo0AyYiF9PWwMuYRXODyLjENpg1fnWn9PGvrmxHgeNXrfMtTRXY6GfKku9XroSitps8VE57D8p63ND0t8Len14k5md1A1L9GTJ+yIYQ7X3QqCN1rrR1ophDwBM3TgeRpRanb2ZR15ZI/muTR0nOxO1gDC8xlTqHxdELF7Wk5McA6OnKpeQKdZg9p6ZkYGZigZqRV6/NjY6QoFtstrbtdbrNe+yXmnBf7DSMYWQyyao8pvl5c/rfAm4zNZozYzUbrQoSQj7VHlqvQdChglMHipNk+nIYvW11ZG4LC0ES7H1AQkJ+OEcJpu2G82pKQNmQtRUFdxAqeZj+ X-Forefront-PRVS: 0144B30E41 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BY2PR0701MB2085; 23:nyTgmCmUXCFmxsylO+LI/qV+RWyCCOaxzq/WH5D?= =?us-ascii?Q?FQ3KCjldJhnOqoyYPo+BO9IjUmUxe75LIvfJQ+d70/c3RrmfMg8ZDaWz+GGc?= =?us-ascii?Q?P/hey+dh/1voZLmtx30JEETm7LdASX4KLlfkYOJYQ91qUQ9vk69nWGdRYkDy?= =?us-ascii?Q?2mmkrX+snSBCQrOT5gW48NNeo1xQMlGe6Q+aA90I/cg+xRbZaq55WZ5oYowk?= =?us-ascii?Q?kP+pIWZ9RRmr8evPZ00o5ruu7cGwEmP0uCaUzdTcRflIRKqkvuFTeYypZTta?= =?us-ascii?Q?6LEiItX6BBbHcwDz20ZYn0GaSdT+DlI+kxdwlhfW3spmHlkKHAtGBOHYhvMR?= =?us-ascii?Q?zBzRy4wKhfrIHBTI8W1fBGsgstPWhgS3BsipwBjjjFy/Rlrg2iNvPBF63ZkF?= =?us-ascii?Q?Y3G9RYdOVJmaoWraYlJtBQ4zFk1KNMXiykCSYrc7lwrfEzUdpWlk5sm8Ob/Y?= =?us-ascii?Q?WGi6T+M2Ec78Sd+cFgd6STXKU8ALep7Zx6JuQG32zLc/CiHKnVOPGvEgDG6v?= =?us-ascii?Q?UmX6arayMs/Cds2XapKyBFvDncD6+pfDzc89CKEYKDRcsZ0BcvWYqIJIH/l6?= =?us-ascii?Q?KtMIXKeuvtPCfEFX5az60HWtij6dt+wDPSeZzhNNZxbE/0IrCDU7BUNfwgQ1?= =?us-ascii?Q?jW2sUWT1pMBl0eXDYADJ4qWNTugEkkFxCqjOAnOG+7O1NCB0cIzpP2RA7KoV?= =?us-ascii?Q?1tZIU1nZYD2gWhWBNA6xZSW0fKeOzOsISNFUGJkyr3YV3O7c3EaC4LCYwB03?= =?us-ascii?Q?bsQUKbplSNRz+HcPS5Rwm+DT/CW2MPAfv1U09+6Npe7aUrLkRJ5ckfaDgy4+?= =?us-ascii?Q?gu4l9nLPG1d5VeeYkVD28jYAidHOKNf+WOf7auDl7TVYNFTF3osxuVt0q97U?= =?us-ascii?Q?zvoWnHGWKUmPGHKCbJ7EhUkcUkGwfjYmn0cLaPKZ+RFZZ+a/+l2K2T8HudmH?= =?us-ascii?Q?JClTyTvQC52Jqa+C07b4amGpy4AG9MPlENc5lXuZo4J5vQfxkqPiPGsYhfMc?= =?us-ascii?Q?EryApRxp099zISwdW88VN3awTU7AHKGVSBekCV9GNXpKOqiR2dI7wzXRhOkZ?= =?us-ascii?Q?X+STNl5qwmRex+P9T6sBiAkzhg4iu4mpsVBtFbLFEfyxZ/dsTgI7f2unESPa?= =?us-ascii?Q?r+yH7GruZoSkss3kCrV3dK7w7BCdABHfF5BSjIOEq9VpE2ulO/mECPQ=3D?= =?us-ascii?Q?=3D?= X-Microsoft-Exchange-Diagnostics: 1; BY2PR0701MB2085; 6:TC8cl/Okb+X1rbE8kQ4mg6CSG85Gia/HGXbb7nui2BWqleRy3XNwNYix40CNZ2oipyXUrBMClVqPj4GAv8QU334lBeXbC6btzJahn5LoDy9APTIp9xl4pCjKhsvOH1kfZjL+ddZO8caOJu/aAu7TQvTnPd+Wz34V6UaGvlqKqLwxEgxTm0w4TOxYo90vwO7vc/pNQfWYZKhd04yHuogUXpUuNH5wnLl/OCpYU37oV61N29SI75ULuJDA4mPQerk66mYZ3GDBVOVUG2IkxkCM4d4YpS+F6nt2QO+lLwAk7V+MgxKPWM/rX3JtEXufFOz+ILZb1+83zc5PS3GXKzyZt7Q+OZCuL7SLajA9rIuUMnK8VJ9UDCWBJmpIlCE3apCCpVjKVrJo9SozcQO7PBGwFyug02ARBjBCoLSLKtvinYSwKaYXmmdBtIWobIaGR17GhO4ZPlnxdmpNCCK96VuNig==; 5:0dSaSrnO/57JAIHbCn/KAmtB0nEbUVGMtVDhTE5JU63vpxBm6lzA+lCU7npaGZFouoNyuEk+jaeNd/XOBIIy0L4jSO7bMM+wZFenz1vbOB1W4AgENlTTITy8BWsZlNZnh1kmw6iBW0+kzpGd7pOQAQ==; 24:oEQFh60vXLmdpFJag5AuFrmyjwjgtkl1oBOZNOi9FifRXD47bfxRkjtDgveBUlvmHJVp2x1kSJdirgYPjkizSAkd972PUPDXCzUeVVe+OyE= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BY2PR0701MB2085; 7:SQuOoOF8rB2EMm6N/yinyTQ5jtu66JT1PD614o9ZC9OGYWPk441JusiMI76qzjYTaqSozQfvqkeygbe8Wx+rDmQDQ/HHVP0ci1zinLOsGynF7Tg4RauVjJqE2g61tUCIccTyN6HPNueC3FbgmeFmCAvE2T/h7cbAQPw5X97DqKzwIpJS9lUGUMIveDRPVpjsMmP+oUUhtadA9Zxyva8Qgd/RV4LKZmGtQ7/DXclQzqrvSn09oLv5P/bNidzfGaGTLt1go+CHomgK4S+qdXqwyXYMDQpbs92HeZ+In/dizDTVT3/VrJ7pRtP0hdaEoIXmriaqQrmBL86I+zvvK9Tvnp4rvWfA9DEACn9+MyeTkmn3QUjaULquhkS3i1TA7oa3Z6p4Uic4fI9oVMPXViHjrJbO7xY2iKgg2FWe/MvXWMCoNvvd1E+tI5Q4WzG32kQgOpRVR2lmfGDFV/xa3kH1MQ== X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Dec 2016 21:45:16.2405 (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: BY2PR0701MB2085 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 Replaces the old pci_enable_msi[x]* and pci_disable_msi[x] calls. Signed-off-by: Michael Hernandez Signed-off-by: Himanshu Madhani --- drivers/scsi/qla2xxx/qla_def.h | 1 + drivers/scsi/qla2xxx/qla_isr.c | 81 +++++++++++++++--------------------------- 2 files changed, 30 insertions(+), 52 deletions(-) diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h index 9a6ddcb..53021b5 100644 --- a/drivers/scsi/qla2xxx/qla_def.h +++ b/drivers/scsi/qla2xxx/qla_def.h @@ -2748,6 +2748,7 @@ struct qla_msix_entry { uint32_t vector; uint16_t entry; struct rsp_que *rsp; + void *handle; struct irq_affinity_notify irq_notify; int cpuid; }; diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c index 19f1848..16e7601 100644 --- a/drivers/scsi/qla2xxx/qla_isr.c +++ b/drivers/scsi/qla2xxx/qla_isr.c @@ -3025,52 +3025,17 @@ struct qla_init_msix_entry { { "qla2xxx (atio_q)", qla83xx_msix_atio_q }, }; -static void -qla24xx_disable_msix(struct qla_hw_data *ha) -{ - int i; - struct qla_msix_entry *qentry; - scsi_qla_host_t *vha = pci_get_drvdata(ha->pdev); - - for (i = 0; i < ha->msix_count; i++) { - qentry = &ha->msix_entries[i]; - if (qentry->have_irq) { - /* un-register irq cpu affinity notification */ - irq_set_affinity_notifier(qentry->vector, NULL); - free_irq(qentry->vector, qentry->rsp); - } - } - pci_disable_msix(ha->pdev); - kfree(ha->msix_entries); - ha->msix_entries = NULL; - ha->flags.msix_enabled = 0; - ql_dbg(ql_dbg_init, vha, 0x0042, - "Disabled the MSI.\n"); -} - static int qla24xx_enable_msix(struct qla_hw_data *ha, struct rsp_que *rsp) { #define MIN_MSIX_COUNT 2 #define ATIO_VECTOR 2 int i, ret; - struct msix_entry *entries; struct qla_msix_entry *qentry; scsi_qla_host_t *vha = pci_get_drvdata(ha->pdev); - entries = kzalloc(sizeof(struct msix_entry) * ha->msix_count, - GFP_KERNEL); - if (!entries) { - ql_log(ql_log_warn, vha, 0x00bc, - "Failed to allocate memory for msix_entry.\n"); - return -ENOMEM; - } - - for (i = 0; i < ha->msix_count; i++) - entries[i].entry = i; - - ret = pci_enable_msix_range(ha->pdev, - entries, MIN_MSIX_COUNT, ha->msix_count); + ret = pci_alloc_irq_vectors(ha->pdev, + MIN_MSIX_COUNT, ha->msix_count, PCI_IRQ_MSIX|PCI_IRQ_AFFINITY); if (ret < 0) { ql_log(ql_log_fatal, vha, 0x00c7, "MSI-X: Failed to enable support, " @@ -3097,10 +3062,10 @@ struct qla_init_msix_entry { for (i = 0; i < ha->msix_count; i++) { qentry = &ha->msix_entries[i]; - qentry->vector = entries[i].vector; - qentry->entry = entries[i].entry; + qentry->vector = pci_irq_vector(ha->pdev, i); + qentry->entry = i; qentry->have_irq = 0; - qentry->rsp = NULL; + qentry->handle = NULL; qentry->irq_notify.notify = qla_irq_affinity_notify; qentry->irq_notify.release = qla_irq_affinity_release; qentry->cpuid = -1; @@ -3109,7 +3074,7 @@ struct qla_init_msix_entry { /* Enable MSI-X vectors for the base queue */ for (i = 0; i < 2; i++) { qentry = &ha->msix_entries[i]; - qentry->rsp = rsp; + qentry->handle = rsp; rsp->msix = qentry; if (IS_P3P_TYPE(ha)) ret = request_irq(qentry->vector, @@ -3142,7 +3107,7 @@ struct qla_init_msix_entry { */ if (QLA_TGT_MODE_ENABLED() && IS_ATIO_MSIX_CAPABLE(ha)) { qentry = &ha->msix_entries[ATIO_VECTOR]; - qentry->rsp = rsp; + qentry->handle = rsp; rsp->msix = qentry; ret = request_irq(qentry->vector, qla83xx_msix_entries[ATIO_VECTOR].handler, @@ -3155,7 +3120,7 @@ struct qla_init_msix_entry { ql_log(ql_log_fatal, vha, 0x00cb, "MSI-X: unable to register handler -- %x/%d.\n", qentry->vector, ret); - qla24xx_disable_msix(ha); + qla2x00_free_irqs(vha); ha->mqenable = 0; goto msix_out; } @@ -3177,7 +3142,6 @@ struct qla_init_msix_entry { ha->mqiobase, ha->max_rsp_queues, ha->max_req_queues); msix_out: - kfree(entries); return ret; } @@ -3230,7 +3194,7 @@ struct qla_init_msix_entry { !IS_QLA27XX(ha)) goto skip_msi; - ret = pci_enable_msi(ha->pdev); + ret = pci_alloc_irq_vectors(ha->pdev, 1, 1, PCI_IRQ_MSI); if (!ret) { ql_dbg(ql_dbg_init, vha, 0x0038, "MSI: Enabled.\n"); @@ -3275,6 +3239,8 @@ struct qla_init_msix_entry { { struct qla_hw_data *ha = vha->hw; struct rsp_que *rsp; + struct qla_msix_entry *qentry; + int i; /* * We need to check that ha->rsp_q_map is valid in case we are called @@ -3284,13 +3250,24 @@ struct qla_init_msix_entry { return; rsp = ha->rsp_q_map[0]; - if (ha->flags.msix_enabled) - qla24xx_disable_msix(ha); - else if (ha->flags.msi_enabled) { - free_irq(ha->pdev->irq, rsp); - pci_disable_msi(ha->pdev); - } else - free_irq(ha->pdev->irq, rsp); + if (ha->flags.msix_enabled) { + for (i = 0; i < ha->msix_count; i++) { + qentry = &ha->msix_entries[i]; + if (qentry->have_irq) { + irq_set_affinity_notifier(qentry->vector, NULL); + free_irq(pci_irq_vector(ha->pdev, i), qentry->handle); + } + } + kfree(ha->msix_entries); + ha->msix_entries = NULL; + ha->flags.msix_enabled = 0; + ql_dbg(ql_dbg_init, vha, 0x0042, + "Disabled MSI-X.\n"); + } else { + free_irq(pci_irq_vector(ha->pdev, 0), rsp); + } + + pci_free_irq_vectors(ha->pdev); }