From patchwork Wed Dec 21 21:57:35 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Madhani, Himanshu" X-Patchwork-Id: 9483811 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 4AB60601D2 for ; Wed, 21 Dec 2016 21:58:34 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3C5E528481 for ; Wed, 21 Dec 2016 21:58:34 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 312CF28494; Wed, 21 Dec 2016 21:58: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 F28C828481 for ; Wed, 21 Dec 2016 21:58:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1759987AbcLUV6a (ORCPT ); Wed, 21 Dec 2016 16:58:30 -0500 Received: from mail-sn1nam02on0075.outbound.protection.outlook.com ([104.47.36.75]:25952 "EHLO NAM02-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1759775AbcLUV6X (ORCPT ); Wed, 21 Dec 2016 16:58:23 -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=umQ6y4PFHwMT63Awa2YHyfVoc8HhFseWDwcLZ2GRmSw=; b=EPycnE/pcPGm9ItuM8WO1ZTcsgIcIDL1Nlcntbt0X1ZQ+ZaEdXIq7vS5Wc7lc7vjEVO2++LPCMVepCW//IBLSNKM2lQBpLjlfDFpaUiyPm5Z6+sMnugEuEet/OEmGk0lYucSr46v3/x8TRjd54omFPWJnP5iVMxpXDIQiChn7Yk= Received: from BLUPR07CA0109.namprd07.prod.outlook.com (10.255.223.180) by BLUPR07MB194.namprd07.prod.outlook.com (10.242.200.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.789.14; Wed, 21 Dec 2016 21:58:20 +0000 Received: from BN1BFFO11FD015.protection.gbl (2a01:111:f400:7c10::1:122) by BLUPR07CA0109.outlook.office365.com (2a01:111:e400:841::52) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.789.14 via Frontend Transport; Wed, 21 Dec 2016 21:58:20 +0000 Authentication-Results: spf=none (sender IP is 50.232.66.26) smtp.mailfrom=cavium.com; linux-iscsi.org; dkim=none (message not signed) header.d=none; linux-iscsi.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 BN1BFFO11FD015.mail.protection.outlook.com (10.58.144.78) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.789.10 via Frontend Transport; Wed, 21 Dec 2016 21:58:19 +0000 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; Wed, 21 Dec 2016 13:58:09 -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 uBLLvtuh031132; Wed, 21 Dec 2016 13:57:55 -0800 Received: (from root@localhost) by dut1171.mv.qlogic.com (8.14.7/8.14.7/Submit) id uBLLvtfl031131; Wed, 21 Dec 2016 13:57:55 -0800 From: Himanshu Madhani To: , , , CC: , , Subject: [PATCH v2 06/10] qla2xxx: Fix crash due to null pointer access. Date: Wed, 21 Dec 2016 13:57:35 -0800 Message-ID: <1482357459-31079-7-git-send-email-himanshu.madhani@cavium.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1482357459-31079-1-git-send-email-himanshu.madhani@cavium.com> References: <1482357459-31079-1-git-send-email-himanshu.madhani@cavium.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:50.232.66.26; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(7916002)(39450400003)(2980300002)(428002)(199003)(189002)(2906002)(42186005)(50226002)(8936002)(305945005)(101416001)(5660300001)(76176999)(38730400001)(36756003)(8676002)(356003)(4326007)(81156014)(50986999)(81166006)(50466002)(39060400001)(2950100002)(6666003)(4720700003)(48376002)(575784001)(5003940100001)(106466001)(92566002)(105586002)(626004)(189998001)(69596002)(2201001)(4001430100002)(47776003)(33646002)(5001770100001)(107886002)(80596001)(86362001)(87636001); DIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR07MB194; H:CAEXCH02.caveonetworks.com; FPR:; SPF:None; PTR:50-232-66-26-static.hfc.comcastbusiness.net; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11FD015; 1:B79QAyQXUUxFtyEVQnoqE82PEWVyYRtMJgk8R9hONEUJj1dugs3M7eFvowLZAYsmEu+0ixHCtRE1TQASurejuZiwUL4GyWU7qT5TFoE7s4ZdLdNx5QlrQGICrWjxhqSTGc6zVAf+Fryn5YGqDaGjCB5nqpsTGOD9GRKSI/E4Q97M+LwqUV8sbC5Dqhzx5CTsstkacPJft5hUCo2q4R/5d+6aQS9+7KLFVbUe9+78TtO8v3ZxMQQDXxxeSg26q5RQaDAnL2pA1I+ka1CgzRnLwte+/BCLiD1H4HjOBlLvYs0g31QcMStgiK/SgnBrXMZiU3n/60CqKIHEjHrVS/gKKlD/MFxzJI7k8qwD8NZc4zanM0or4UfmvGYJcSA34hc3g+05uSn/hPZaUTjC03xTvY2L4+v3rRA1VtNkS+NOZD0eIC5STp4jfQXsgjcjLlV3AAgo5CnQmTEuT2SIQL6Y/Z+G0dn/CnnEYndyzcsLSdoW5vS3MIAg16vFv55MGFxN4rtWfkRPq1BihxVSz3WVnYIJNLRoo7Y5t3bVgTGnjUz6UHNw8nd1ok2gyJIPvjJT X-MS-Office365-Filtering-Correlation-Id: f2a6bd93-9913-41c2-a20e-08d429ec7a12 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:BLUPR07MB194; X-Microsoft-Exchange-Diagnostics: 1; BLUPR07MB194; 3:0MWe5vRAX0c2gatiX1P801iU048wq1WUsQxZYJMRKpONQwxQgQmYvoVTlvvx0naw3c/t6G3me0DDPtkqVy/HMJy7b2YPGGOdkQqsoVoNYnIbIMrmNPNMl4Ab9SgV3aaaAwfaQxsGzwH2yMFg+AmzJQmrqyPRhTJncwoQCYF+uZnQKHUc/wgmYyJOpnb+bQmGL8wZx4mp5IzKwZNNBFFpYepYLA1EYnT+LBeSAQcA/m5VJIDmAvx/neXm5eifmPKaFjaYyAVYo6qhJ1Of2svwDojhat4ZgzVti8vvzQbKlqb7fLWRI2CgHCJb3128+azuLCP79Z14B1253JW2fVo2W6KIIGvNmS069A2UQkySlPPnhkaXdnJDkm5eGCER/eoK; 25:3pgbU3uHaH+Gxvz8nZG+JORjGeC+QcTCqks2ODPEEi35sV9d66m58owewx+cU6gJf4ofWLhEeWXiZKfsN08oRunwS51yH/du+QjSMrkzXCmmjUHKnbcVY0P9vuUMbXp5AKySr/a/CCGm8df2Ig6PLYRmxW/khBAq4kThDnXUZrLh6qrsEITOLN+K5jaOvL1cD/vg9iagXEYskL7Vq2HfFc1gQq/WVy1dybAytJLF9GEG4Un9rTY1iBRlD2CGgRWPhlg6JcOTJE8G09hE+8k8vsyh1bJyqSVHDMEyslhQSguzcWOhYxWL9Zzrpb53Ediovt6EOMFRkAb8cNFukJKjDLuoMoSTW6l8P7OeS9OXGaApFqa48yM2VSGxD1iqpWxQ4BfGsK6OU4ENwbkCXXOSSeQhyBosd+zcvNfb50nl5WXkdzp7aI4UFC77GoPyNpU41g+BAjxF0DMYnJi1R68cWA== X-Microsoft-Exchange-Diagnostics: 1; BLUPR07MB194; 31:HrPiaj7wgy5cr8a8Qe3MzTkgolmWMqiOZrpq1ardzZDFOTFgsa4hB/xNknf1HANOeCcyqeMrUB4cREmJhdQZeVdzCzdjCbxXpQX5fg9wo+yp3LHYITMJMYdxbYuP2YVvdUqj0AaOhkgaqpPeO+4BzXmHSwosZzvd9Q8OhbTUYuZQMdnnuyR4Xp05V/6ih2VwrEJi84o9UGQ6yhx3MMoSZDSjQ0kICMSH+9HC498KntTjMFFz0k3NUg7D0hHIQGnq0lUIPYORE546axzM4gl4SQ==; 20:mhVTR58gmr3lh2bR3C+ZOazVr52qqAfSTwTk7FyYn7zUbl75sn8z6w6Gcb875vrof7OttXo1yb+Afkst4pjfvrt5a+aI6xJBVn3nuk1hdh71bz1om/VrgSHNPQiX3Mvj3c0Uo+Rp8xB33izzgOw8daiBKYn5mIiKt1gMiM0YahCi/5vCrGKWeNA67TRPjdRryYk7YoMskRxjzont4e7hJTfFx1pCPVrjGzT7EfNJP39Ev5/tfMKujmcQ9Kcidi1bzOq8hIVS1juauEFdO2y7r6/5myHmt3GkBhCru+OepAq5AvAj3MDq5/2IUFytAU3M1HBtPbc9XlN59z81oDVPar+mTwKhgE5HJCyv0w0JFKAh5tkQP5bwXzeQDRgFjj5Hp3Ua7mG2qXptx27xFFtp1yBQ/GPqL6iOQp1yuhPdHW96JTqM9o0HOsRP5O1ra/5ldLDmsNt4M66qSDsKziwDv01bBA4e/nhztcqPSLk0eogJX0+uFjh6PQNo+HZExNYv X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(9452136761055); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(13023025)(13017025)(13024025)(13015025)(13018025)(5005006)(8121501046)(3002001)(10201501046)(6041248)(20161123560025)(20161123564025)(20161123562025)(20161123555025)(6072148); SRVR:BLUPR07MB194; BCL:0; PCL:0; RULEID:; SRVR:BLUPR07MB194; X-Microsoft-Exchange-Diagnostics: 1; BLUPR07MB194; 4:0UdzFVQJjhqX9dH3qwUOcJv2CBVxWqGnMv/bSumq9b0G48We4Ld7pQVuFqBT5izTlS0jxHhfaBWKhTZvv9HYnaOCpf0tSjnGsD09WHfaOGASzjuQ2J+NhpN2bNajaWj/azweexTkR2Z8n5GRw77n7uXSQaZPX9SXxJkXqUj39swIb3HVwpKxjFPQBLI4gEbcH56Sc+7vXdSCA2mMJTfhehDz02mPInVrlm8YNm1t9gPFIN5+/rWmnWMllIBj1Ruo6jbfEYChgJLV0nOq2efKNx8Hg2L1siSMOaySi1umyug7rEJbfbeFTVPeqUBiQo9vwKiBK/t5hRIRTQZnlZ1okxD1AW0M8vNWOntXrX5t5vkeXw/gmjo3cqsO9UlYxXeTr5dL+47LfHORy0nFnf80iOyvaFstY6BWQLx3CkHMmKW6vWdXWcnLLWLsyitcWU0zHXJf+WhVHYJ1I2aNlYgFwKET+Wg6w3gNpDNDv5NTcrCJTelQs8rAttg9r6CGA1JlBbM6QznaCAdbm6dGInivfKZsvDIHm/5f43tbdYYtqojlAZr9BcGMFHYUgvEyQgo3UOFpqsH3/gAbApIxeIxXXyEWzMPtoZArRPlUqVD8+j1R54zeOIVPa2HlKyRHaB9pNIkRdFACh1BQAHxP5LbNxrQC2OXW0jVXkTahSvtMAVHk902EC/g8noUCydYa5N3taneBOCG1aDnJVaf8SbOk+Q== X-Forefront-PRVS: 01630974C0 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BLUPR07MB194; 23:3EFnI1ebnE5gEZ+0FG3+DUPUC+GgSErp9sgiPC0ZmJ?= =?us-ascii?Q?DGf0MIpJskz2r6AVeFnCQrgJd1PXYh6xyD6kDMY+LGaYhMsO1SJ2NbmnunP1?= =?us-ascii?Q?uazVO1fYmy7QmxGx+uy3FlyGNmXnUqD04rx6FAke3qc/hG9OVJxcieekEaz2?= =?us-ascii?Q?/cufwUR+ZZ98MwXgZn2txMf1AOwi8zMGKncgXcSub3skTPyKnmWzdztwePfh?= =?us-ascii?Q?rVsKnMwyydw+p90lUerqEvoEG10h2pxVnoZShxliGF9x+oK3o6DDFwmlmAiL?= =?us-ascii?Q?B6SV1eOYmbnRmCqlO4ZEk1sANZ7ADFZIhoK4IpZkKV21NSH+TMJs343KJo2G?= =?us-ascii?Q?WokphjIi+32yvcB1hSqYCqNYZl9kHH50VIeqKf+nL0ZvXZfYw+LDVe78kQSn?= =?us-ascii?Q?J4KrLYLJbrMwP+dcz6dn8MzQZSvsPNsT5+hYPIRMUygg7CIRyt4+UnOb1bBH?= =?us-ascii?Q?Bs6RXF3Xut31f1mb8zUCS8iGREjSIRC63vwJUSpkxLu4eIqsXGy2tSb5404Y?= =?us-ascii?Q?nHE/6I+PDdBdLzaHA+y2DjGBFBHRH55C/+RbKPj0sul+XATD2CVHdClK3/Hp?= =?us-ascii?Q?kgJzS21QLL63/PeYpyb5S8zdLmx4f8QmgQfpGqd9TPqrisr8W7FHiJnr0pRJ?= =?us-ascii?Q?xF23ehjGTFP1ssbk0KvUbSQEaueWjhHYQSwfCKUNEqJyRrBqYfUiy2PUAUlJ?= =?us-ascii?Q?QpM88Z29jxOcexvQ4lhJe5cGFx8lkA8PykB56Nye/E8m3J6VVSGoBPG6VfaT?= =?us-ascii?Q?5ooujHrwpO9O1kGvaxV7AHAbhRfJ6GDI3oCeMZDnO1Aw1Fng1OKh+AMlsnhH?= =?us-ascii?Q?XBEzhW/aLk7x1FvDLShpjAqurTWQEW9aRY2zuf1/zkp0geUlEtZ+zXe31Ics?= =?us-ascii?Q?FvG1rL+y8VDy8KpOPqWWCjmOicxEiy1wkoWWhvp6a6JWXak2PBg8dO5SzgjT?= =?us-ascii?Q?jTW7CPVMM9L2lrSSa1bz1h2FxpzARLYk6pKoQyvh1A4DeKtH67x91n2KlywI?= =?us-ascii?Q?uG62uAlrL4DfVbvZQzPsUrdq8+a3s3STjFj1EuqaWsKXFdu2GhnPlvYqJwV9?= =?us-ascii?Q?1lLUBln7M+H+9+SV58BFNL+i4wLebJjFOFSe/yn46S57z491gvudwP6utO2F?= =?us-ascii?Q?eqFByXMAIVec7kM//0XfUQGTltxBnq?= X-Microsoft-Exchange-Diagnostics: 1; BLUPR07MB194; 6:PVJeULWcBsku5+Ld9oVnMHnFhLisG83yt2LVYsiyyBV3YRM4J6DSmU35qOtpMUFmuKZXeiwabpRilcr1S+3ihzRpgHmK4UHb/99UBrqeG2Ig6HnVZP0wi3/34SWiWKlVT2RjcomZY2+MdYL26WnfQDPwU1uhxO90wnkFCt8twf1grvgD5jRWDKGq9ZnXKWlv4BOH3q8oED1SfHMu/xUpRecEz6UAx2mGdCekd0tBmH0HYT+w17by3mZ2Lxp/uy8bkYEbkon8VbrAPr2hGEdcyTKNYMqOp5B/lFay6xNvde+olSuEePEa2I8xTxvdJktpuY9Oi9CpSzgTt5gya8EkdTIZuEXK52zk3Ja2fMYT/pZgWl8o1JyynxQPSihk2ozUIjnYCjoaSvO0sbB9m74LtMvuYhGJJnhhEUXk9EuMWhs=; 5:5XZiRyLgpGqWFLAK2TvuxcX9jGio87vzwZYdU4FIR9qzhPukR3tTEnw6rA7eOjovrt0iHiiZgzt4O20lhamsxXSSLKVrhlaBr7dkXWtxpf0D7YLE+TJi/xNhduC7rcrOn6Jq/oxc7BoMuj6sz8kk9A==; 24:0iKK9mHnW2o926LSranlitfixDFp6Pz5iyaFtqP7puefC4ygapfeHQ1Ii5D2DhvQfRum1v42l5MBSE4Bbj7TILu7AsB4rG6NkrehKJFrVeU= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BLUPR07MB194; 7:iamfryM1Z2iQYW49DlL8ttlhsmiGn3uap+i5x1n6Kjvhy0xU7UgyypTHKALMMznK5pvLjk2XOdY1dF+aEYoExm98f1QQjB2L2qRfPIq1vz7u/t9+GtJFLZp9LDCtHSZh9u7L28kroZBdkkDvsH15Lwi3bGmqIIMAMq85zgjqDfJ7zaklG+RWU+TZfOPlUCsPncWHCE4zKEAnl599oDs32RR82Xp7Ke00a8YHf4p9bsxIwnJqE/3IvTSukb/6EGrpUl4gNs4JF3tTFIFrPkA4JfSL+JF5pqw9piNRs+BpcN6b4Ke7v9F6Qy6/DDY4DOwrmAvP7jPVsVV+gXGmAzoAmzvNnMIaOXYfSeGqiLNJEYk4az2DDiJEJkr246flUkjqRCO/jR2OzJ+fyM/HS7y05clg+B9TV+13j3zzDEjqKEmsUanY+rRFsfVoIPIwiT/xZp5R9OceQ3i9uB1Bp6U7Pw== X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Dec 2016 21:58:19.9556 (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: BLUPR07MB194 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: Quinn Tran This patch fixes crash due to NULL pointer access. Following stack trace will be seen. [1469877.797315] Call Trace: [1469877.799940] [] qla2x00_mem_alloc+0xb09/0x10c0 [qla2xxx] [1469877.806980] [] qla2x00_probe_one+0x86a/0x1b50 [qla2xxx] [1469877.814013] [] ? __pm_runtime_resume+0x51/0xa0 [1469877.820265] [] ? _raw_spin_lock_irqsave+0x25/0x90 [1469877.826776] [] ? _raw_spin_unlock_irqrestore+0x6d/0x80 [1469877.833720] [] ? preempt_count_sub+0xb1/0x100 [1469877.839885] [] ? _raw_spin_unlock_irqrestore+0x4c/0x80 [1469877.846830] [] local_pci_probe+0x4c/0xb0 [1469877.852562] [] ? preempt_count_sub+0xb1/0x100 [1469877.858727] [] pci_call_probe+0x89/0xb0 Cc: Signed-off-by: Quinn Tran Signed-off-by: Himanshu Madhani --- drivers/scsi/qla2xxx/qla_os.c | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c index 8521cfe..df57fb3 100644 --- a/drivers/scsi/qla2xxx/qla_os.c +++ b/drivers/scsi/qla2xxx/qla_os.c @@ -3662,7 +3662,7 @@ void qla2x00_mark_device_lost(scsi_qla_host_t *vha, fc_port_t *fcport, sizeof(struct ct6_dsd), 0, SLAB_HWCACHE_ALIGN, NULL); if (!ctx_cachep) - goto fail_free_gid_list; + goto fail_free_srb_mempool; } ha->ctx_mempool = mempool_create_slab_pool(SRB_MIN_REQ, ctx_cachep); @@ -3815,7 +3815,7 @@ void qla2x00_mark_device_lost(scsi_qla_host_t *vha, fc_port_t *fcport, ha->loop_id_map = kzalloc(BITS_TO_LONGS(LOOPID_MAP_SIZE) * sizeof(long), GFP_KERNEL); if (!ha->loop_id_map) - goto fail_async_pd; + goto fail_loop_id_map; else { qla2x00_set_reserved_loop_ids(ha); ql_dbg_pci(ql_dbg_init, ha->pdev, 0x0123, @@ -3824,10 +3824,15 @@ void qla2x00_mark_device_lost(scsi_qla_host_t *vha, fc_port_t *fcport, return 0; +fail_loop_id_map: + dma_pool_free(ha->s_dma_pool, ha->async_pd, ha->async_pd_dma); + ha->async_pd = NULL; fail_async_pd: dma_pool_free(ha->s_dma_pool, ha->ex_init_cb, ha->ex_init_cb_dma); + ha->ex_init_cb = NULL; fail_ex_init_cb: kfree(ha->npiv_info); + ha->npiv_info = NULL; fail_npiv_info: dma_free_coherent(&ha->pdev->dev, ((*rsp)->length + 1) * sizeof(response_t), (*rsp)->ring, (*rsp)->dma); @@ -3851,6 +3856,14 @@ void qla2x00_mark_device_lost(scsi_qla_host_t *vha, fc_port_t *fcport, dma_pool_free(ha->s_dma_pool, ha->ms_iocb, ha->ms_iocb_dma); ha->ms_iocb = NULL; ha->ms_iocb_dma = 0; + + if (ha->sns_cmd) { + dma_free_coherent(&ha->pdev->dev, sizeof(struct sns_cmd_pkt), + ha->sns_cmd, ha->sns_cmd_dma); + ha->sns_cmd_dma = 0; + ha->sns_cmd = NULL; + } + fail_dma_pool: if (IS_QLA82XX(ha) || ql2xenabledif) { dma_pool_destroy(ha->fcp_cmnd_dma_pool); @@ -3868,10 +3881,12 @@ void qla2x00_mark_device_lost(scsi_qla_host_t *vha, fc_port_t *fcport, kfree(ha->nvram); ha->nvram = NULL; fail_free_ctx_mempool: - mempool_destroy(ha->ctx_mempool); + if (ha->ctx_mempool) + mempool_destroy(ha->ctx_mempool); ha->ctx_mempool = NULL; fail_free_srb_mempool: - mempool_destroy(ha->srb_mempool); + if (ha->srb_mempool) + mempool_destroy(ha->srb_mempool); ha->srb_mempool = NULL; fail_free_gid_list: dma_free_coherent(&ha->pdev->dev, qla2x00_gid_list_size(ha),