From patchwork Wed Aug 23 22:05:00 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Madhani, Himanshu" X-Patchwork-Id: 9918493 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 B754C600C5 for ; Wed, 23 Aug 2017 22:05:49 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id AA4B128A39 for ; Wed, 23 Aug 2017 22:05:49 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 9F2F628A74; Wed, 23 Aug 2017 22:05:49 +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 328C428A39 for ; Wed, 23 Aug 2017 22:05:49 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751083AbdHWWFq (ORCPT ); Wed, 23 Aug 2017 18:05:46 -0400 Received: from mail-dm3nam03on0083.outbound.protection.outlook.com ([104.47.41.83]:37999 "EHLO NAM03-DM3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751142AbdHWWFn (ORCPT ); Wed, 23 Aug 2017 18:05:43 -0400 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=O7JwJDryZFgDbQ2MjaXOsG/bXZ69qsUdP2F61/B63DQ=; b=lneau8+gMRYsHqkhcmfTzyOL1R4EMP9TxIGwxZ77yS5moQPqSALKbJnP7ueEnOPI53PkI9Ayy5dLLFQMSVcHOM/0oSPxwQtgd2b+tOOTj7YNbIe4gmUw0aW/K5MQ7dZmz8OFPaLzVDN9VbIREOzcFhWgiO6lTPaR+np6CCu93lw= Received: from DM5PR07CA0046.namprd07.prod.outlook.com (10.168.109.32) by CY1PR0701MB1948.namprd07.prod.outlook.com (10.163.141.157) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1362.18; Wed, 23 Aug 2017 22:05:41 +0000 Received: from BL2FFO11FD037.protection.gbl (2a01:111:f400:7c09::189) by DM5PR07CA0046.outlook.office365.com (2603:10b6:3:16::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1362.18 via Frontend Transport; Wed, 23 Aug 2017 22:05:41 +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 BL2FFO11FD037.mail.protection.outlook.com (10.173.161.133) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.1341.15 via Frontend Transport; Wed, 23 Aug 2017 22:05:41 +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.347.0; Wed, 23 Aug 2017 15:05:26 -0700 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 v7NM5Qxr003174; Wed, 23 Aug 2017 15:05:26 -0700 Received: (from root@localhost) by dut1171.mv.qlogic.com (8.14.7/8.14.7/Submit) id v7NM5QA5003173; Wed, 23 Aug 2017 15:05:26 -0700 From: Himanshu Madhani To: , CC: , Subject: [PATCH 06/31] qla2xxx: Handle PCIe error for driver Date: Wed, 23 Aug 2017 15:05:00 -0700 Message-ID: <20170823220525.3115-7-himanshu.madhani@cavium.com> X-Mailer: git-send-email 2.12.0 In-Reply-To: <20170823220525.3115-1-himanshu.madhani@cavium.com> References: <20170823220525.3115-1-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)(2980300002)(428002)(189002)(199003)(50466002)(5003940100001)(2906002)(5660300001)(47776003)(86362001)(2950100002)(33646002)(81156014)(106466001)(8676002)(81166006)(8936002)(76176999)(69596002)(80596001)(54906002)(36756003)(50226002)(42186005)(48376002)(105586002)(1076002)(626005)(478600001)(87636003)(356003)(305945005)(101416001)(50986999)(72206003)(6666003)(4326008)(189998001); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR0701MB1948; 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; BL2FFO11FD037; 1:yMMesZlraxSrbN8D7jgaewpx0newgFFxSF8rql7D06O52nJk8sBQA7gFj96SfHdjpAf4mHStlc7nQ55T/PeKWTP5esGTkdZa9GiQBP3W1chgZw6JrfGRSlwR+BYcbG4Z X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: d3611fab-0575-4919-47e0-08d4ea731838 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(300000503095)(300135400095)(2017052603190)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:CY1PR0701MB1948; X-Microsoft-Exchange-Diagnostics: 1; CY1PR0701MB1948; 3:x5KkbackUoVrXv1157C68wvQQp1RfWd0rtJb+lQD+CeU4QC+Q4ve+FKYmKVgp9RK+Mr4AYrX8ZpYPpg4zxlMxt7trmERgajLL5ImW/ljnox2wHLsd0NRArvm2KHZPuJM9H4j7JtkfKLh0BMZtaIP8sXx0uN/m+T6LKR9KtX9MRSwhAIY4CI75WJGjpk/edDtBcx0dCdFWLA7zbjdKGk00kirVX7UXxLMaLJ16rkDLRnV6j8u8lN2fTHg7SRKZ+Vxam+gJyE/m6UnpoiVhO/1hmnA09w3LmLI5B0hYX3rct/bfzmraMJ+YZHzenRusserlCHQMHkI/IOBXzKMX0CcxA==; 25:KiFEQOcqXXtlwjT/kyS46JJT7IOWvujS6p96lNz+P/3SJSgE56ZDulJpW5OzfG4kp2N8y1yuuE317/SVhGkgHX16uCLaxsxvBM8BrzJjNyyjGDZDK/zBFeeAS6tmzPNwFTGT1Rern2HcbG39wT9nDuNZ32vZtC5Ek80UfZbaKIJpApGJIHfgJ2ohB9XT7Lx+95N0D77Wb6ncVNYYZoLZsLn1FSGwzYcmTZSMEJAhxZRG4ePevs1daS/mQgdXOWAQVddv9FRouyg3dREJ09mtrOx0dLnMG7gWoSGQw0rvWTU40ppksPQT/dayajXSH0WLNV4YH7GZMjBLt5eAFQVUdQ==; 31:p9ORr5WpC1Nh+RfZXSLvXZ1SfmAszO+oixJBcTc/Xges9z2UkjaGrljyEOw/74kS402bY62dCmG2dW8mRWZkGJl/F1BLPfxClUBlC7/OkSgr/8uBCjFrtGpQQIFvp9nvG+pZ2EL/LIPaFMTIMFdAWm2a0Ce0t6APwdzvqVhuhJjJB/5g1teEA1onlQr0VVY2PpfdymPjlKXGRuTdi7TNjr8xu3LsMr29fHb+Ji7Z7Uo= X-MS-TrafficTypeDiagnostic: CY1PR0701MB1948: X-Microsoft-Exchange-Diagnostics: 1; CY1PR0701MB1948; 20:DNl6Vo6+1WxCgIRc5Xgv+Is6GhT8WQeh4OjqOasb2XPoj7F2ACDbLWw9ilr1fdRa/igugnA6Zkmq9B7IJEVQdANJWZ+yisk+li9T1ZJL5SLRirXqepLmRO8MbqEjD/7TduSYqQbZMsmlOZLDY24/aYfVDwahrBEWoMGcQOxWBBe7jUK3LfebD3kXuxPoOsY3gOLIqrvhQ/B85ngoVnICNKLZSa5TDVU0VSr+DlJrPJSPRcwZWuzURIzwGS0L4DQH/3lGtiKNwQzxGhBjxI674ymoz3NB8DCOlKdirWvAWbJgaxNaHY4MpOljWnqRXAryMWSqLJcrjUTba3Na4XX1Cb0hUa5jQpdWV+8jnT+kcycziRljBIe30O2mQKQ+ruiv+7CGHBsnWB+t1cDDHyFBAvytP/8YRADNPa/AdSfmN21W32iIBVQ2o/RTQpIGaH+t+hig7dmJqAUdUa3DXnH6tgGEW3+T8O9Rcd4Sg8DoHhbTYdb9CVEFTOGx544R42Qy; 4:D+sJlIthRAz95hCoWa8l4jElTClspdTYEiehFxw+lJlzW1qnccYYyAVR5B6/+YHcFXLwi2HbLILxEbyatnNYPbSiinJKYvU+h0Fw1UCFhSAY1XRuHAhASTU31B0msUWrBGXE6zbfjBNhpj6jRdkus8n0zpnfKCLbww5ygeI0vfLrnB5V74NLPUzyU+/0116WQSH4PL/CwSzGfRxMVOGSh7PU7uDhJsum4ifLgTdTmnhMEoSPOhOOYMNJViUqsCCNGHXAenC4Krhdj/nQRiP2yRrW2/RMUBFNTGvCJoaQKYU= X-Exchange-Antispam-Report-Test: UriScan:(211171220733660); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(13018025)(13016025)(3002001)(100000703101)(100105400095)(93006095)(93001095)(10201501046)(6041248)(20161123564025)(20161123555025)(20161123562025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:CY1PR0701MB1948; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:CY1PR0701MB1948; X-Forefront-PRVS: 040866B734 X-Microsoft-Exchange-Diagnostics: 1; CY1PR0701MB1948; 23:z+4U9KyrlL8u68C0q80ZIz1/0AbqupBTdINkoCHHkP+tQvPj6pDQQ3cl0RSAlrf7MhzBbXUrSDwAoII9aLIHv4FTKD9z0cB4ivHgGqzH7TsagTEQE2eDWuJL553GifPEBTCfpWRkioM1KXbp3fqAP+u54e6erGhhaRUKXZ3Y9mBW/IEGReVNybpuEwItEsQ+iLuDwJn/Mw6AkWOnn6/1d8IC/FKgaCknRB+FhsZpS5PFjaNAeDN5g0Q+vXDQItZGyjNng3PuUY2Z54hLQURlfFn+NBrqlrzSnXKR2jYGqyP50Oqks4LpSp1w7gUmBYnPImr7PFm0wTxyyI1nx36/cSXEcF6sLwa1TRVzn1fxdK7/1TxccwGXWXLcVPXEYkPGgMU7Dziv/nWDtDd/l71NWjAlna1RWVwgUQg/Cer9Yk8V5S5rdgfoC3Ic9lkowegsLCvwAfdHrOJzAU8Y7Px3AGVmuWSXvwyW6oFx7U8+bxcILK1yi/ZjnLQRS+LxzDKlD0ccJGQJzf2KqQZf5FtgyI6OSII2ahsZgf5rXr9PIAq+aIj3A7RAhmsUJsbufkWtKSq+tDKaShTaHZNFBo8+aVvSyYoBHasTilh5FF7UTvZv/WiqZwQFNI2MI41AtGb05yHxmgPsAn2aefUBu/+beJEZRRWi85ZT0k2McaGNQAkUTZWE9GYS3urztuXJCFemjyReZHFkskO5B3/6X4gtQONGgHfE1soFgeok3Ix2KTYyHbp25KxAKZ76C/2hdO+sBGkhg2Jqd8dUoUSysz3oyLfr4xZHJzkVM2CvSY51n1WY1o/0x5hubwsqrEE2MRyLe2dJS5PhB2Cq94mS0xMsbgJ9rrlyJ6IM3/3NOYsoZJGQ7xI8fwliAH+qt+jwAFiY0WYSvNgtO5QjD7hvAYKcNajWcUx7RkobiB03+o8 HIJEWPNEZfB6WC/NuTjxcEL22 X-Microsoft-Exchange-Diagnostics: 1; CY1PR0701MB1948; 6:JpMv1AQweXUQUh7xGqGLXUMzo7Ip5BAeynqWbepDNM4IP43taRr3UaKGBF9WZVVmMlWKw3moM81kKP65OekBP1AtOy8hFBfsuDkLr2bZoAfape6Qv9iOpwM/fcoliILM+fd0yH8VfoCe0B63wAGNuLw2kjTJA+7XmXuBTGI9fxcknbgoFAZVZ7JCAaq8DsAAInvYrc53TQOvHEOWl00xKxl0FF5bFdv2cwbqtdNrG95e1guEDFwYj8XP0Ho+6u7i5dTST23ca4+e1eej9gC+w9DtK+4rt9auoKaCTZstJ6cIybPn3+BzF408PWOwUps+vsTDOxcrE0KddZrZX/zKTQ==; 5:r7D6nnNOp/2Kk+Krzq4jZbYuadPw+0qaGMnK/wS3rpBzaeKIqKzUk5eG6I6BpgHMP5CMHuyH0/DWbMzahwPttYQqbz5nVO19PbtsGge26/zClMJAJHyoxL372+f59+gytvjwbcaKz+oNcomQqlh7Xg==; 24:wTxHd4cUX7q3/CTLAmV0/utcMM/Jv8Ro2TgfkV+koTNeHzicIFcDVKeNHvBQvfWX1jegauwQQmZgLOZkKFBiaAFqbvsy2+prpyBqLXeAbDA=; 7:o85iFNGyIa7/NxDq+dSjHK4FkffwMC6jTrr5yEyJ11kCCuy/hCTnDOUGBoVaLvCRKM7u17HEbPH77adXooGKCVaNZfq6+Wulz7+jgEsU7HuH9+BXqoIyhg81PIZf32Okfl2zb1lx9/5pkhzbocwfszpes4zKnSZDHodfeYeyVlvIG5k2OUCBK+yZs12mkD+yWf7dostbuAUsiC5htLPYf+PWjRCbVnnbZSxNem/Idy0= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Aug 2017 22:05:41.1130 (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: CY1PR0701MB1948 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: Sawan Chandak Driver will perform following - Set PFLG_DRIVER_REMOVING flag and do not disable PCIe error reporting during adapter shutdown. - If PCIe device count is already zero, return correct error type from PCI error interface. - When device is offline, return correct error type from PCIe error path. - If there is board disable thread active during shutdown and PCIe device count is zero then cancel scheduling board disable thread during shutdown and return. Signed-off-by: Sawan Chandak Signed-off-by: Himanshu Madhani --- drivers/scsi/qla2xxx/qla_os.c | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c index b43520ca6645..d668ed4bd53e 100644 --- a/drivers/scsi/qla2xxx/qla_os.c +++ b/drivers/scsi/qla2xxx/qla_os.c @@ -3385,12 +3385,22 @@ qla2x00_shutdown(struct pci_dev *pdev) scsi_qla_host_t *vha; struct qla_hw_data *ha; - if (!atomic_read(&pdev->enable_cnt)) - return; - vha = pci_get_drvdata(pdev); ha = vha->hw; + ql_log(ql_log_info, vha, 0xfffa, + "Adapter shutdown\n"); + + /* + * Prevent future board_disable and wait + * until any pending board_disable has completed. + */ + set_bit(PFLG_DRIVER_REMOVING, &vha->pci_flags); + cancel_work_sync(&ha->board_disable); + + if (!atomic_read(&pdev->enable_cnt)) + return; + /* Notify ISPFX00 firmware */ if (IS_QLAFX00(ha)) qlafx00_driver_shutdown(vha, 20); @@ -3421,8 +3431,9 @@ qla2x00_shutdown(struct pci_dev *pdev) qla2x00_free_fw_dump(ha); - pci_disable_pcie_error_reporting(pdev); pci_disable_device(pdev); + ql_log(ql_log_info, vha, 0xfffe, + "Adapter shutdown successfully.\n"); } /* Deletes all the virtual ports for a given ha */ @@ -5495,6 +5506,13 @@ qla2x00_disable_board_on_pci_error(struct work_struct *work) ql_log(ql_log_warn, base_vha, 0x015b, "Disabling adapter.\n"); + if (!atomic_read(&pdev->enable_cnt)) { + ql_log(ql_log_info, base_vha, 0xfffc, + "PCI device disabled, no action req for PCI error=%lx\n", + base_vha->pci_flags); + return; + } + qla2x00_wait_for_sess_deletion(base_vha); set_bit(UNLOADING, &base_vha->dpc_flags); @@ -6197,6 +6215,12 @@ qla2xxx_pci_error_detected(struct pci_dev *pdev, pci_channel_state_t state) ql_dbg(ql_dbg_aer, vha, 0x9000, "PCI error detected, state %x.\n", state); + if (!atomic_read(&pdev->enable_cnt)) { + ql_log(ql_log_info, vha, 0xffff, + "PCI device is disabled,state %x\n", state); + return PCI_ERS_RESULT_NEED_RESET; + } + switch (state) { case pci_channel_io_normal: ha->flags.eeh_busy = 0;