From patchwork Wed Mar 15 16:48:48 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Madhani, Himanshu" X-Patchwork-Id: 9626177 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 60CD860244 for ; Wed, 15 Mar 2017 16:50:49 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5326428641 for ; Wed, 15 Mar 2017 16:50:49 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 47EEC2866B; Wed, 15 Mar 2017 16:50: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=unavailable 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 BD72728641 for ; Wed, 15 Mar 2017 16:50:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752964AbdCOQur (ORCPT ); Wed, 15 Mar 2017 12:50:47 -0400 Received: from mail-cys01nam02on0066.outbound.protection.outlook.com ([104.47.37.66]:24989 "EHLO NAM02-CY1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752885AbdCOQtO (ORCPT ); Wed, 15 Mar 2017 12:49:14 -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=1Uo6nWOKNXQXnzZG+muKOk49QSHW4uYJzn8ShGGk0d4=; b=lKXhzL22NCzh4B+B4ae6jrBBcs14k/SgB9U1/SHdhGY83PgbIeKl+kBgFer21ImRbyqWzvgsV7Xi7tuzHCYL43YErhAzwgCsU/XbTklWn/n1uf9l2xoS4qxRwziA+srllctxoIfIUFZXk1bHZgeMhW6F65sjTLoTBhn9xF7bG+g= Received: from BLUPR07CA082.namprd07.prod.outlook.com (10.160.24.37) by BY2PR07MB469.namprd07.prod.outlook.com (10.141.220.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.961.17; Wed, 15 Mar 2017 16:49:12 +0000 Received: from BL2FFO11FD017.protection.gbl (2a01:111:f400:7c09::101) by BLUPR07CA082.outlook.office365.com (2a01:111:e400:8ae::37) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.961.17 via Frontend Transport; Wed, 15 Mar 2017 16:49:12 +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 BL2FFO11FD017.mail.protection.outlook.com (10.173.161.35) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.961.10 via Frontend Transport; Wed, 15 Mar 2017 16:49:11 +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, 15 Mar 2017 09:48:58 -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 v2FGmv3l017314; Wed, 15 Mar 2017 09:48:57 -0700 Received: (from root@localhost) by dut1171.mv.qlogic.com (8.14.7/8.14.7/Submit) id v2FGmvcA017313; Wed, 15 Mar 2017 09:48:57 -0700 From: Himanshu Madhani To: , , CC: , , Subject: [PATCH v4 06/14] qla2xxx: Allow relogin to proceed if remote login did not finish Date: Wed, 15 Mar 2017 09:48:48 -0700 Message-ID: <20170315164856.17255-7-himanshu.madhani@cavium.com> X-Mailer: git-send-email 2.12.0 In-Reply-To: <20170315164856.17255-1-himanshu.madhani@cavium.com> References: <20170315164856.17255-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)(39410400002)(39450400003)(2980300002)(428002)(199003)(189002)(9170700003)(48376002)(5660300001)(81166006)(50226002)(8936002)(50986999)(4326008)(105586002)(76176999)(8676002)(189998001)(50466002)(1076002)(356003)(305945005)(6666003)(2950100002)(80596001)(42186005)(101416001)(33646002)(54906002)(47776003)(36756003)(2906002)(8656002)(86362001)(2201001)(5003940100001)(38730400002)(107886003)(87636001); DIR:OUT; SFP:1101; SCL:1; SRVR:BY2PR07MB469; H:CAEXCH02.caveonetworks.com; FPR:; SPF:None; MLV:sfv; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BL2FFO11FD017; 1:lxQ0g6ki+IhZ4q2UZGSsMdmDB6RHiigrrjjG4G34ieitVCFNofTEbXWhGiqFivpMHAAZ9kZFJTCJhjAYqwpn02xd4W0XfG4dSmnlDFKN595FajSJtyR1Q6C+RO2HZ2qw5Ow5L5uDYZYPu2qO70PR+EFMbyhmsXv72wPAZcbSNhWuKBCcojwQqFP0bnwU+ZtiwCViUtVsUuIGvktUWUu6qJs4YfsYYnRNNyhIck2MUmvON22jJ4VS0CYdyZ7nJgGt9vVCnZn8t/O1/pCIH4AqGicHf+EiVbTWxum96Q5Z3yfiawYCWaQ1vuayXXEpMtPQAQmWgQM90y4ylrqQ9034xqaBmGM64+vLdpQoBjkNRXH/W6/B9aZYpf9iWQXbXCcD7IxN59QxkbHLFA8CQvHj9XnAFmDeJ73XxqPjsmPOdmQBl8hRfnFcAXnB6KG6XUBDMufdu0buzaonTb+5/Jwh9XybGpEVy63dRNqHssEUXycosCw9kjOKhHVa1C2Kmmd3In4XOAokfBbjdhZKSHC+MXlCCyTTkDtib/1po2c+LAA= X-MS-Office365-Filtering-Correlation-Id: 68b14ebe-65db-4537-e56f-08d46bc33502 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:BY2PR07MB469; X-Microsoft-Exchange-Diagnostics: 1; BY2PR07MB469; 3:+0N2CCWF5pHl4ekf+DAb0tOI4Y6j5wUcr7w0/yrWcdcht2ia2zCkGQ+DV4jzenn2nnaIRs5KHw3RxXeyyQhY+UbowA+STPNkh0psOPOlRywayZmUag6lHEi8vTf7vyjnxJoh1AS1GddhHIaqvXnN33JMeFiE7ULXNf91vwKeMpbBeXAz/W25rfi9py/lE1q1eJ+0DOvET5M0WCFQXKY3cMU7rREl0HDAzIE7HB8fpI9KT/jTnayAxZhyw0LoS4ejdbk5iIpcXuGqjpLCCPZC2IQhhTMyqyr/r19qYodH9fjdHvlS58hewIJor+BnxUYLZkgbZ+PWRHquxlybRmWkBGomq8mVAC7DKeMgwd76oWvz3/A84EvbbOFeygR01ti7; 25:jiW6IJEbz7VKSDlAGgc3bOsFJDnO3yV4RlCwlmB/a9OgLUJca+fv9DPm0DTPz9gc3dsLz8a2ujt+9YOBgqWBhuDeaE/7M/ZPQfuEdbq1836G2WqZl6G2RU27kVfW8O50yIi2xzkkQZYjZuZnTndwzQPex2VWWegpUKXvA4OSsWTFqe5F4PZbhHZbKawbAalWtDjLvWI63NCRHJ8uKpCmuZ5/m5qKRAck/h0PmM5DAROWjQgJHSzU5ZJA8vANbjDvbQQoxMf0KuSxzaEaU5ZySfB1ZU7wl2yzDOegadIhcRKZzkC+kSZYNdLDDBf9GYmJHFLFYzlDGZr/iGUZiu1WUwKhyuON/8ARVaR3/j62IZUlJKrrojcYi02oIIkoh/MYbdQ3wQxEAzK8Xi4jAssNA8joqGlv1bWBf4hRszo2BmqlGcy048LccW8awVM1KG3plZacbKMl68ALU233FF9iug== X-Microsoft-Exchange-Diagnostics: 1; BY2PR07MB469; 31:FCX1fuWZfhG19tOUS4r0clF1r8cvquuNwFGYontVG/dmpglu76ot+YRj0SVIxGvjJIQ3Uz2txvOMaZwc3V2RadwxMV1anG4VHWvXVjoSIy8e0QorCeF3wSp+WYJ00BgMbvN9Afv/4ENhf9mWb/EOilTEjgvGvoseTJgh7UlQVO0CFZxHtR/Vn/Et22oJ/0eqVGaR7p5phXPAbbEIqeal5KuwIOCm9zhbG0N5MksZYQ7yGLE5eDAhFhetzLIePhTBTl2/iak/vDtzNdRdps/cYA==; 20:D4WB6cwA4Sgtv6opxKSuwtssncd/ggkPFW9u4eq0m7qcV+woTirL+yqaGZiq/xQ+zLC1ZgoQQsGJAVUCWhEfmsy6vMy4u3vjEaLKOGEatiFA0aGhEjIG2pbE1KMZnxKzUgkgRl3TzYqNhBVsmTIsndpx+ZG5x7eHyenJCZC9myW8u3U8KTwvHdfYrHk3mbdDrswbKDt7A/2l1K3OkqR5gYKsMqBAPC5EZCK5OIFJw0MnHCZY2eISP1pM/WMvIeSlNFF4u6nlx916ZL/Kv///0hcEFLgI65AMqmUpUV+Ow9p9txhVWPJo86M5LaBjT1VCYVX+92cSWDIyoRcntO/F+jxWKBESdaDTevo60tRqoQDkHhiNHnKsVS9yxi3rK/XMn160897ut8gnkLl+2aeRJHt5ieVTzlv+w+tGnCezCOzycjm3x+rqGLaJ8lrMowTHCWQEj/vTNrzZUyWQ9wyzsSuh+JE8LbjqtiPFQ55TubihjBUqntqlWE56lUFerNF1 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)(13024025)(13018025)(13015025)(13017025)(5005006)(8121501046)(3002001)(10201501046)(6041248)(20161123555025)(20161123564025)(20161123558025)(20161123560025)(20161123562025)(6072148); SRVR:BY2PR07MB469; BCL:0; PCL:0; RULEID:; SRVR:BY2PR07MB469; X-Microsoft-Exchange-Diagnostics: 1; BY2PR07MB469; 4:YockCz8wVOvH95J92DwAWUxCoi3V3NjXBb8Qp1CjAWcXS/wForGPnkLc1bMxYveB/T62BqzAk/VbpGZk0S+yy6ARazqlXhD6xfKdZyi810GTLLLaEaXjSySZ3sSmNHYD0+lmmEwXADPDgY1TuKAtf5lJ9tY4/hSksCjKFm9Gl3Jy9fd+Gh58l1nZ/ZGuCeVOUYT4ug9E1GWQQ8x/fUjsWoue1tpn4hoFacDU0FcNtxtFtyHp5l3q23Wgerm2IxNbuudvrodQP1NokX2lqy2C8PCgub1lD9REdZJ7umeEI9nR6rPvsuDfnN0y61rxCc3FpskI5NXd7ZJY2p8Hnb6BGiH2z/OrQ03arLYFEsXpnIXBWmRNLQjrjfT0ssaKrhN1tk83mcheKazpvL8F+FdsGpjV5hSIRzufrjW4JUgVWvu39/rra3XoxusVqjdO0DG2YqW7bjTVJ5WbpsdGAMXvzPG/dfPnbmWFkkJqErbfRse9Kks706pS1GBzJv/LI9OEmV9mNatbU708x7+a0xxJefp1j+rQoapWphdQJlo7c7/1L/4W6+Du8jTrRu2b/XjICjIgJwXsDhEmscU1Dpc7oSAyam6JvWGsTMnyzOfKWhMCS5tfO97EEvqvS8+IssltA/txaqPVRMZRkuq9F0R7Edl9hXIPQCaJnqq3VXNyo26fiVVsmhiqFtPj2UGpfdCt X-Forefront-PRVS: 02475B2A01 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BY2PR07MB469; 23:Vfw6XS50O/JTd+YGhtu0zO9SEVkKBYuYRUUB+ZvCuw?= =?us-ascii?Q?TBj+inC0G/CWTXD8v8HYAfQSgEkeAv3ee8STBomgH4aYJrp1KqaZmJu1uBTB?= =?us-ascii?Q?yz1q/n4ZlVw4yUWricNfWqL2vqOU1EJoWRMcOzR9flyNzAhV8INZo2kyj1aF?= =?us-ascii?Q?ZG01RCSuV19if7rOMFbzzDOFeyVraWO8bRXUfS9p73pgALagUkSZ2g8ehYd0?= =?us-ascii?Q?znW9rpZaTKce8W1rhukuPfJ3wxpDa1kvcEx6M3c6xaybXy6zYYQM5tAD/5Qy?= =?us-ascii?Q?nVUvpQmxLxMz54Msw69hcO67/7Q3hec6sFqxqA0C+a0J4W0L7XLDnYrquV30?= =?us-ascii?Q?n5Gm4HZzLQFkwTjYLQDftoo1ZIg8f1s3DtFU1BzdCj/kl07ScMTeuGaYN0B5?= =?us-ascii?Q?hxdu0PIr1QkU24Sox5seTBVLyO86iWDb9xucQ59dqX89gNqeSCTl8G+wROwb?= =?us-ascii?Q?NvX8mtx49bpcHaiVNqOyUS1Ugho3kLx45CmFueFAXGoC8gtJOpShovXX+Yv2?= =?us-ascii?Q?VUDGtzBPystCax1QO74qBoB+NOVZid2nDi/y3H0ZKVm8ePIM9VGGOWhR9Ch7?= =?us-ascii?Q?zogUwWd8jzl2OQZsIyHTjjBrd9VCDNFROE2uKtWPI9p4slYwYncg87Uf9VuS?= =?us-ascii?Q?ULCC6CzetPvZIkL0WDFkJWtuMOD/6f9MYEpydC0GeSLvsX46GzbEsZEM6Sa2?= =?us-ascii?Q?kR25qbX+ikxMhbJS4+n/SRZkq2dkBef3rdjHHxkWS770Beb0yYzsAdnk/sPh?= =?us-ascii?Q?6+4c/pNEzBVJ3Zh4zXHXPK9rf3k6IFaXEFJG//IPOG0kKTJN3Ysu6Kh63Bb7?= =?us-ascii?Q?o9N3YgPyRW73xjlq/1eBS5fAVU638ouxqc0eTaf0I9kq9fYXn8/QDcV2vpu/?= =?us-ascii?Q?PHgXCKCG24PoHmjtJ45yUcaSyq/bFQrwtrhfMX21LjCIlq+0PnbZgr16v3T+?= =?us-ascii?Q?REPykOV+YyAF/ZfcLfyxOLO82KaPh0uMlr2mURYMd+m/mggS6Wacaiqak6+R?= =?us-ascii?Q?k=3D?= X-Microsoft-Exchange-Diagnostics: 1; BY2PR07MB469; 6:D5pfRjmJhm1RKGOCj9POUHoBCfxgbNhV8tp6tfRQIMhpt3R9Nd4eGunNtH523FBKuxatcUXYLKxyNV5giYEdO02RuHuCKWGHGqPmPbB45uPlhEBlxXeKs1+Xu/KxHv19+zKJhmaZ6PnJidwYrWDFpUAPUsi84Mps4HmjA7CLd0pP/2jn1x+9lddOhoQUK4UjTxZDTKWor0d2GqmCI/TBY9cWgDplVk89nn6HhpetOEYVX8D9X2JtUF6X0V6tgD/AshRyVLaPGxrS1RituhQcAF6oPMfT5kE7lK3TJVP1o3sVX7o/LwNliedpMQCZoap4eIH40V9Wq6nSZxNSUhDgu3HpDWrtR0Sl7e5vdEcMERVMnZr0RKj/0MeePNgN/OAPZQLymeOZE80Q/xyQprQQCg==; 5:ZRLoJNpd0trKZsmAPM6fXr1mvYe7bEC9H+MeCpj0W9kZJmGU2kXvmsAYRQcYDqDtZLg5U1uonjguiKe7Yw200OpZ/ZKgPcZEbuebTw45E2a56FNJmAZCiQr1LeRsKleisvcfATfCal49AqtwOEF2vQ==; 24:G7ANjZiRaNyoy+puR2hr4VDyKbAHKRp7JzRxP4HwYD/dFZhFqWbipeHF2v1zqNUPoY+o5KZu5GAaX2MKMaOsJah8Nm2JD3kdKx95DUt7ipo= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BY2PR07MB469; 7:ELgm1VEfpD10d3rcIiaByEafdQZOrmRUvEEvwgHOD4EirtUTB20VPpzZwgyzazTJNScaNEd+BxX/BsVOZ7vmLac8wWVheGWUrZy0XyLQYK1CgMeyCUM3ZWKi6m81H5ISDWuLzC1wjvW78kg+2ZEoqPuXSAOoTer9WHwHGfe0unywf71OgGMaBpUMKWYTFNU25OujmML5VwWXmqNmXmWEW2749vHgX4IN8OLEC3Unuqm/vsdvVvF8JTmuDBlGIC6gERj7bEmYug5QRdlqtZhI9J7fStjPuTWBwX0GOrEtZf+hbDx7KTpUACSUHEU9304fCfw1eoXEA2lmtBF9DIsv8g== X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Mar 2017 16:49:11.4827 (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: BY2PR07MB469 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 If the remote port have started the login process, then the PLOGI and PRLI should be back to back. Driver will allow the remote port to complete the process. For the case where the remote port decide to back off from sending PRLI, this local port sets an expiration timer for the PRLI. Once the expiration time passes, the relogin retry logic is allowed to go through and perform login with the remote port. Signed-off-by: Quinn Tran Signed-off-by: Himanshu Madhani --- drivers/scsi/qla2xxx/qla_def.h | 2 ++ drivers/scsi/qla2xxx/qla_init.c | 12 ++++++++++-- drivers/scsi/qla2xxx/qla_isr.c | 25 +++++++++++++++++++------ drivers/scsi/qla2xxx/qla_target.c | 1 + 4 files changed, 32 insertions(+), 8 deletions(-) diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h index 8662ef4192db..56cd45fc600a 100644 --- a/drivers/scsi/qla2xxx/qla_def.h +++ b/drivers/scsi/qla2xxx/qla_def.h @@ -2300,6 +2300,8 @@ typedef struct fc_port { struct ct_sns_desc ct_desc; enum discovery_state disc_state; enum login_state fw_login_state; + unsigned long plogi_nack_done_deadline; + u32 login_gen, last_login_gen; u32 rscn_gen, last_rscn_gen; u32 chip_reset; diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c index 9f3740c68cc8..a7865a5d556d 100644 --- a/drivers/scsi/qla2xxx/qla_init.c +++ b/drivers/scsi/qla2xxx/qla_init.c @@ -876,10 +876,14 @@ int qla24xx_fcport_handle_login(struct scsi_qla_host *vha, fc_port_t *fcport) fcport->login_retry--; if ((fcport->fw_login_state == DSC_LS_PLOGI_PEND) || - (fcport->fw_login_state == DSC_LS_PLOGI_COMP) || (fcport->fw_login_state == DSC_LS_PRLI_PEND)) return 0; + if (fcport->fw_login_state == DSC_LS_PLOGI_COMP) { + if (time_before_eq(jiffies, fcport->plogi_nack_done_deadline)) + return 0; + } + /* for pure Target Mode. Login will not be initiated */ if (vha->host->active_mode == MODE_TARGET) return 0; @@ -1041,10 +1045,14 @@ void qla24xx_handle_relogin_event(scsi_qla_host_t *vha, fcport->flags); if ((fcport->fw_login_state == DSC_LS_PLOGI_PEND) || - (fcport->fw_login_state == DSC_LS_PLOGI_COMP) || (fcport->fw_login_state == DSC_LS_PRLI_PEND)) return; + if (fcport->fw_login_state == DSC_LS_PLOGI_COMP) { + if (time_before_eq(jiffies, fcport->plogi_nack_done_deadline)) + return; + } + if (fcport->flags & FCF_ASYNC_SENT) { fcport->login_retry++; set_bit(RELOGIN_NEEDED, &vha->dpc_flags); diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c index 3c66ea29de27..b2c6da752edd 100644 --- a/drivers/scsi/qla2xxx/qla_isr.c +++ b/drivers/scsi/qla2xxx/qla_isr.c @@ -1620,9 +1620,9 @@ qla24xx_logio_entry(scsi_qla_host_t *vha, struct req_que *req, QLA_LOGIO_LOGIN_RETRIED : 0; if (logio->entry_status) { ql_log(ql_log_warn, fcport->vha, 0x5034, - "Async-%s error entry - hdl=%x" + "Async-%s error entry - %8phC hdl=%x" "portid=%02x%02x%02x entry-status=%x.\n", - type, sp->handle, fcport->d_id.b.domain, + type, fcport->port_name, sp->handle, fcport->d_id.b.domain, fcport->d_id.b.area, fcport->d_id.b.al_pa, logio->entry_status); ql_dump_buffer(ql_dbg_async + ql_dbg_buffer, vha, 0x504d, @@ -1633,8 +1633,9 @@ qla24xx_logio_entry(scsi_qla_host_t *vha, struct req_que *req, if (le16_to_cpu(logio->comp_status) == CS_COMPLETE) { ql_dbg(ql_dbg_async, fcport->vha, 0x5036, - "Async-%s complete - hdl=%x portid=%02x%02x%02x " - "iop0=%x.\n", type, sp->handle, fcport->d_id.b.domain, + "Async-%s complete - %8phC hdl=%x portid=%02x%02x%02x " + "iop0=%x.\n", type, fcport->port_name, sp->handle, + fcport->d_id.b.domain, fcport->d_id.b.area, fcport->d_id.b.al_pa, le32_to_cpu(logio->io_parameter[0])); @@ -1674,6 +1675,17 @@ qla24xx_logio_entry(scsi_qla_host_t *vha, struct req_que *req, case LSC_SCODE_NPORT_USED: data[0] = MBS_LOOP_ID_USED; break; + case LSC_SCODE_CMD_FAILED: + if (iop[1] == 0x0606) { + /* + * PLOGI/PRLI Completed. We must have Recv PLOGI/PRLI, + * Target side acked. + */ + data[0] = MBS_COMMAND_COMPLETE; + goto logio_done; + } + data[0] = MBS_COMMAND_ERROR; + break; case LSC_SCODE_NOXCB: vha->hw->exch_starvation++; if (vha->hw->exch_starvation > 5) { @@ -1695,8 +1707,9 @@ qla24xx_logio_entry(scsi_qla_host_t *vha, struct req_que *req, } ql_dbg(ql_dbg_async, fcport->vha, 0x5037, - "Async-%s failed - hdl=%x portid=%02x%02x%02x comp=%x " - "iop0=%x iop1=%x.\n", type, sp->handle, fcport->d_id.b.domain, + "Async-%s failed - %8phC hdl=%x portid=%02x%02x%02x comp=%x " + "iop0=%x iop1=%x.\n", type, fcport->port_name, + sp->handle, fcport->d_id.b.domain, fcport->d_id.b.area, fcport->d_id.b.al_pa, le16_to_cpu(logio->comp_status), le32_to_cpu(logio->io_parameter[0]), diff --git a/drivers/scsi/qla2xxx/qla_target.c b/drivers/scsi/qla2xxx/qla_target.c index 989f931af156..925d9b858b24 100644 --- a/drivers/scsi/qla2xxx/qla_target.c +++ b/drivers/scsi/qla2xxx/qla_target.c @@ -562,6 +562,7 @@ void qla2x00_async_nack_sp_done(void *s, int res) sp->fcport->login_gen++; sp->fcport->fw_login_state = DSC_LS_PLOGI_COMP; sp->fcport->logout_on_delete = 1; + sp->fcport->plogi_nack_done_deadline = jiffies + HZ; break; case SRB_NACK_PRLI: