From patchwork Fri May 19 21:53:35 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Madhani, Himanshu" X-Patchwork-Id: 9738275 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 0493E6034C for ; Fri, 19 May 2017 21:54:39 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E67E428562 for ; Fri, 19 May 2017 21:54:38 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id DB70828573; Fri, 19 May 2017 21:54:38 +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 4160528562 for ; Fri, 19 May 2017 21:54:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932145AbdESVyg (ORCPT ); Fri, 19 May 2017 17:54:36 -0400 Received: from mail-cys01nam02on0046.outbound.protection.outlook.com ([104.47.37.46]:25760 "EHLO NAM02-CY1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1756809AbdESVy3 (ORCPT ); Fri, 19 May 2017 17:54:29 -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=shyCf4/+/5Kcz5zu05dCNF4SCGOjS0zpZbEkQ/RXsrw=; b=kBa6aydlkx552+waHUrRAGiSa4qQSpqfmyng5b5lSPoDiScpIdArpsPnaQkxORJmHRJULf/KYdTNKjBnoEFcgJIglLIjsuF6HSRPvLiaIzhJuKMfeeM8i0ZlNdAVA46tpxys+X+ilDx/xMPflHWsDML99ObZNGXpoLkyMAAufo8= Received: from SN1PR07CA0042.namprd07.prod.outlook.com (10.162.170.180) by BLUPR0701MB1011.namprd07.prod.outlook.com (10.160.34.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1101.14; Fri, 19 May 2017 21:54:26 +0000 Received: from BY2FFO11FD010.protection.gbl (2a01:111:f400:7c0c::118) by SN1PR07CA0042.outlook.office365.com (2a01:111:e400:3000::52) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1101.14 via Frontend Transport; Fri, 19 May 2017 21:54:26 +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 BY2FFO11FD010.mail.protection.outlook.com (10.1.14.74) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.1075.5 via Frontend Transport; Fri, 19 May 2017 21:54:25 +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; Fri, 19 May 2017 14:53:54 -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 v4JLrrap002275; Fri, 19 May 2017 14:53:53 -0700 Received: (from root@localhost) by dut1171.mv.qlogic.com (8.14.7/8.14.7/Submit) id v4JLrr27002274; Fri, 19 May 2017 14:53:53 -0700 From: Himanshu Madhani To: , CC: , Subject: [PATCH 16/25] qla2xxx: Fix name server relogin Date: Fri, 19 May 2017 14:53:35 -0700 Message-ID: <20170519215344.2168-17-himanshu.madhani@cavium.com> X-Mailer: git-send-email 2.12.0 In-Reply-To: <20170519215344.2168-1-himanshu.madhani@cavium.com> References: <20170519215344.2168-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)(39850400002)(39400400002)(39840400002)(39410400002)(39450400003)(2980300002)(428002)(189002)(199003)(9170700003)(106466001)(42186005)(1076002)(189998001)(2906002)(33646002)(4326008)(105586002)(80596001)(356003)(86362001)(47776003)(72206003)(54906002)(2950100002)(6666003)(5660300001)(5003940100001)(50466002)(48376002)(38730400002)(50986999)(8936002)(101416001)(76176999)(478600001)(81166006)(8676002)(36756003)(50226002)(87636003)(305945005); DIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR0701MB1011; H:CAEXCH02.caveonetworks.com; FPR:; SPF:None; MLV:sfv; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BY2FFO11FD010; 1:pP0YFJW+dWCF+UcS6vMl785tIxTjqsxLzjCV78HflCjS09eMs/5D3nnRzlwz/DiIn+ASZDXNoQd6KQDrcB0Rlps/BsFdZ7EK+F6TGqZuk+LulEVcEvoyTIa0KxXbnha/L9Gq575z5e3QYphGrdjk3WzuYOwuUMZmLUgkGUOgTMjMsrRdoyc8Kp4kk8JeIodrS84af0w+nncxPHQzgsNpAkXyPNYRRDgBseDw6HRBBgCrEZwyc4gex+5JfwsOS9wJT2ZZrH2Niv6E5DyiSFVeIw/F/hN7cvq061/U1wDtS7KsNR0Z0XkNP+YtSyYWd9tQ6oEsyB3VPAyqUGtW7Q4rX5+aF+G64uF8nU9RpCekMk4X+uMRTtL+siqWxRns6sVyohbEodOGdG4OE9+kNXTSuXE8AvCL2pJQm13ZzQtq/j8lw2cdaxp3IoSSXlif3vnlDbcIAQUux1RXQHXKEOtFQXM5LYwMm+bxPjzDxp8rr+Z4j5wp1ZjeNXqplr0vHHWOOj0iNiU6APl3Y49Lu6ntNjH/WNEVgqW4fye3oThNuMePQVSmD/I+waZXoZRhLp/sdRKSuj3Vk/ctYIpHYoDf6A== X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BLUPR0701MB1011: X-MS-Office365-Filtering-Correlation-Id: d9f74a5a-6c60-4645-3742-08d49f019de4 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254075)(201703131423075)(201703031133081); SRVR:BLUPR0701MB1011; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1011; 3:l/L0x6s0XO3VtfcHVx0bEsCh/hxcLM/BgVXbLiVjl9XkVQtqWOvqsM+tyAKtZxiD9iyfVZPrantPQFNgPyVJSgkCnLNhFH4eCKSj0TbAfetDRAy7aUZBzp0H1aNDjowLl7RQihwT2PGlLqY+M0665fyOsGL3gJ6ZZmhrmyA/sg/A47tbJefw2XccnaXnDy92lzh/saBsgDkt1K1+McBTp9BNbEWHJD9NjxWCc8TA96ll6AA5YYhUKuoWCN4bPBmPptISPLjR3cijWMOVA4q8egpGevKZVQiyM/YEQsChX3t0pSkC9k8MgKBqKXTF9sPY8qcZCuA/FaBKxxsLiyDgMM3SbNPnH3X8vLvHnj2u6e/mJ9AvKQDlGQ+Wgh+ruuaGwXWUevTF20TQ9Jdnc4Bi2q4cfB3rFue8yoYfIyNLm6vEEEzbZESkO2Nz9KhJUy8Hw9ArF6pPxEr7vMzjHWzgHg== X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1011; 25:/Lkm1Jt+QQIT7L2nkUv5SfqJ2fDH1BjP8DmtoN7BviTLkGxSjU7aGIawdig3dVL9ZUJvGvOLIjWSlj6RC9fQG72hh9ZUz+BNV6SVcQD+Pbavr5udS/1C7oRmhdsfoKEhterJSBRdhF7Ss7NNhuMIkyihVPTKrMJBJerJPsMHzBv0uOfiwKLhb2mVmLq3t3fTvUpA/XMktmCaWFTeUkr2RI4WP7mEnQPyzJzQtMu2A0NEfTsX148vAqzndtv2QJjZ16DfQVkl5Owf/7+25zoMIKM65uLw2Hgo4rgWevDN/Z9K/l8ditppSRpI+kPamnks2wKi0ROsfoW1ueflgfVJDM5u0oCc15W9/8GGVEd7GtenI9GHvaUSuB50eVoWbqEquGqNzhS0LRjETZwqkE88FcxdDHRq2Yr1TrgF406vU4Vfhfq+V82EV1VHJbRVCfXJqtqM2SA1jwoMFs6rhxPjmVGuQ+Y3CoifexTNjGPsnPA=; 31:XgYlRInqyvA07pvDxdMvb8Y3XIsBiUeStQwSI3bqdP3KvehEuQFfR7tBlsJkUeDKDohsWrRfhMiFUTTgxXcI0254owi3Rx6VUqDcLRbLqFHjJd6LUv6TqlyYSMNaH1Zhs9/AUfcHgWicsXSB/sP20iPIFLdE4TzhltbbcDVKHuyteOeNyuZSiV3PwZGpqfDLtP92p4/C4xSHkxuZFF3hGilhq0K4SO8puKmRSuhAvFPjXDymIG/qs07wsxvKwRhm X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1011; 20:p5bzL58idQpHBM29s5MYPx/OPnsVjDREUsh9UaRNblnGvV8KROYMsAa8bemAsO4i/sY/TBbkGm4B/WCH53fY9mYfHyoXgqKOnS7YIhkAR6upjecxDe3RI4Mr00o0xRAjWDMbR2Ay3TULRXB8rvct8dCkP3WUwPMiEvq112hv2BdPmzrn3tF8bLTK7gFbf7D4E4OVbaUjqidWLj2ymTAFLD2ltKVrgV135pmcFvKmAnn9ogn50NTaARRPr1merVQC81ovd5TTfA20PcVOU401eA1R2KxNTt+ZrMsFJik7jmCAJFzVR6DAeblHNDoLi/GjdyVjziz2oSP70iXNJBDtvS6X26COOqIryEs0jdMy+zeY4oHWdFZso3f3hw7q4KV0GuKlZIQhjC90eSz+paV1Wp6UUsk/f+73UfUvu5iyPOSF4ZWG6IarYi7lrizjDaAPhugcmQwmWHFC88gKs8fjDSQ3+w9RvWzNgnA5bhugAHfb2zc0fJu0YQ2g4+V3+bS/ X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(158342451672863); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040450)(601004)(2401047)(13018025)(8121501046)(13017025)(13015025)(5005006)(13024025)(13023025)(10201501046)(93006095)(93001095)(3002001)(6041248)(20161123555025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123564025)(20161123562025)(6072148); SRVR:BLUPR0701MB1011; BCL:0; PCL:0; RULEID:; SRVR:BLUPR0701MB1011; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1011; 4:BjjGzJiJa2+wDPd+TLs4IqsBS+m5H7QYFFa56ju38YRGlRjYF5yoewGeTW0G1wSlKVBEuZKJthTfnI3V7LsJeM6D/GwtMIIggP2thlYofnpCy1zl/1Ob4lwWang0EC+QMA4GM8oueXpN0sOV7NFTnq9aqEypCWgkNlmvt0O0OTs2+GbPwsKFDgSFZGWbiEwkcp/ga5keMpsFHurL+S+Xh0oAmOdS58vJBB+amNiN1FxSpgapuGOcskFPydvwFB6TYgY6HpxkIRkhEG5YaOx+sBVW8hOzrxjdwiAccoWnAn8EJJhF87YELU3wCFIF+rd4Zf8KR+oM2GpvD38OZCoCOFheuGS/Ewqk5OYC7mH05lz4e5696Wy8MIaFIWaWcHmAExzbU/a3TJl/vyVWQrci/yK2TtGitgQirpiAXLK+eGD0Zgo6oqgy63efQi8fG81N6C7e26NVCZBSdUaNDqQW0iSvk+Izc4UhYvT+4DBLVvo8yJ4W38/v1pVaie7o1mc8ZciDAOUxTUWmhLKzgSzhEm5FDGaLVM/91o1soibGB7/0rYtB0FrZSKAiIZHieQF5mpofdxnb5HFWHBDyWHQ/nuIgrSMCPxyIYsdPiw2UbSGIfJZf+evVabyYAStHWtqW3QzKgtrbvhXOm/kPwCGTs1cKDZyiwMm5XffMoUxvO2792wadyjcDy94NrEV+jJXb9rUUK8DIEMlWZeS59k94EUTrki3yc3w8l7naRZxul+/Hloq/NVvPvlna11pENs27aP1/BR+CZNtnYxQbFDzmxfUSouWTQBfLZM8vtokN9Nyjc9N5nrW5BF/MqpWEy0whyMo4PvWNhUGO4K3JVWC5NO77x3WmlcdcLK+jDdGKxn3RaJBNeTw7OzikSCMd+yZq5SprUg23ShRHGow7Ymfrj+vqzQWL3HjAoK3cz5BS Jlw= X-Forefront-PRVS: 031257FE13 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BLUPR0701MB1011; 23:yY/BkfT0mOIDhvj09Kz4xnS4/olAxmTA3C6K0fX?= =?us-ascii?Q?ri2dFumEmkmyGTk33m+yzho68kcO/epdacqKsvSXOyaaa20ah1usZG8fssVS?= =?us-ascii?Q?hJHrpUT9GTL4HXFLVpgapu+ROvo8Ci/EHOaNydu6pd9BwspMhHWQcEpM0R2x?= =?us-ascii?Q?MpT3cHIfVYmQlTnuAfq8s1I9Bqre2U7/AZncULAeMmTVpQXeZBX9Q65vt4Jm?= =?us-ascii?Q?NtZdUR08Q6/RqHtuXAjxEwZoWnRTIplHzHXSOybi858Qrlq12jWj+awnDBnx?= =?us-ascii?Q?ztWvLA5fXG9RrqNKCONARKGpLpRbr4nWkk7gWRWpRi+tvfWtLxkrNZQCBiR9?= =?us-ascii?Q?wSEPpWhPnoPVU8SRlmjXeskOrtbdSDNNK7juvx1TzGPaiEHgG9fLLuOlecgq?= =?us-ascii?Q?JS8umvcHo3Tcn2g0q2Q50lEb8TGZl/QiZv8f+eMb8S+CbS5sXrmN6EQ3qYnX?= =?us-ascii?Q?g0Sn3pQFl/43Xe+enEw7ahbGOffqhMv40z7bKFJFtmsj0apcytR/pcEaUPXP?= =?us-ascii?Q?6orGWM407BNtTUn62rwd4Fx1CRGWijz1KlVp5nPGd/Wc2LhuChjqoGtAqz42?= =?us-ascii?Q?9i4e5y45RwxE1Zu2QDPXRz/E08KM04dkWhbPaYKXVrXEdmDIvhTVYeQGJCq2?= =?us-ascii?Q?DQXNgW+op6oInk3wTVOs0/Fw2+kcA7b8UUVDV7wuWNEOfNF112qU4HFdzfNy?= =?us-ascii?Q?Xd7iep23tygI/VFsdDbFYc52SaJdy16GdbpcLBK737s9PdzQGd6hXEOrlQ9P?= =?us-ascii?Q?my3SEv3Jm5nSUMycvoLnLogEL1+q2ZIOz2IRafeVxjxCmEcGdkKnJhnw1Xcf?= =?us-ascii?Q?/m99SMJAeQs4j4Xgz8/GM9KeS4Am9J68dXOsshoPMrp2aG8o9Z83mwR1iHjz?= =?us-ascii?Q?MF3jjmufJ0CTL5jPAaQqNElbD+ZtXl0Pi4Hlp8C99Rrbh0pI18q/5giLMt2r?= =?us-ascii?Q?yBV0wiJPEY2TtQcgv7yfvKFm0E5n+hrgjuebn2gBEmRbedFfz5emMJUiEDeO?= =?us-ascii?Q?rsP12gy/+nyGviwM9V+gIV6AF+vYW5FHnHN59qr1MRqRmh9+XvgajFsbZjpU?= =?us-ascii?Q?mautU+r+TmPQZViIT7UokS+xp/Fmj?= X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1011; 6:sLzOHlID4McxIXCCINisIcXwG39S9M2IAyAIfhnk2WJKqCXo19TlqHV7Kum6RKvwLwq2oRRE9umrTy1i32yr5M1wkb4G+pGMNP+UyCuMXblT/AjWAKxLn0D3CJCNDI/jgk1yRLxvJSwlIPEQfWn0kevt6ZoUzzcbbCVri6ZjUAjNtAGPuOGgmUKgkkv7yIAbYZKijcGHIUDr2DfTOAfJnyRUdto8gBkQ+JWKC/9ylxbG2jVYT2ftgYWtj5f4GaawKNiwmlOu8jzamEdrFX9bv5fpHn+vcNBkISBrJSlflYq3AVbaGkXCA/rXwzGBMOiUW0XnuOC6P9lZrRalT8SKeiF6JoSTL/xIGPhbqO0LX5Bkks1MIbA+SleeTdHNByfhjBkDRxhZoUtxKAoa78pTyQD7TAkQ5cURFm41pFTrvHcflpb4aDJ7Am0xmGbOlnK6HxANTdJzEtmQ9PSfBvGQ9fUcfqyQSBbf5eqPJVdG53s+K3D/ldqfbbryUkTBTvADVDZyImP22ycwGsaZbJWxQA==; 5:NCieXEJsJ4bNnsp7FLe+3CY8lahgjbDLP7phsqs3ijnn2DyYSctT8cFqU2m/516z3X1D5MOgrfV1QS4cN614hzta3wrjWoIAtP9HeFPWsr0xH397tR6AweLU8sOVlCwz39cYZv6XmXuFZyfACE53JA==; 24:6ajBx+F7eJ9BKfCuAWtp6I2wXOHfjOYyw1yjtwaeqkv5UpD+gX6s7lg/1DSxs0U/pwllH2L8i7e0vzgLaEtvVmuvEDag6QHqYF67TG8iXHk= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1011; 7:CRraUwba3Qpipvtbo92oYxbmEJ4QvnYCd/qFOpKlSBbPEsou8Qme23k8CstjITTKGKnmZXO7GrnLTLuIEyxEGXY/7LrDxkyhuKYO9VBqWfhARWDT3RE0TlLQGgFdwCaEDYHZskmVpqo/pJ2GhsCQIADHPHR0gbLM4xA4mlqZKTj9llKY0d0DiAxXVhGjs3keXCtcCBzOcdm8vOSFivJZZXZ+dIe32ndMrrfijYF9S9hPuEj3QVqAc6wtEuXAeJDSk8hLZkUT3dc4ogKAIjkl3eo94dbxLlO8KDj1iIjOE8ePH7SwP2Luz3EfdU660671w96C25wGZuTsG3wzv72YfA== X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2017 21:54:25.6817 (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: BLUPR0701MB1011 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 Name server login is normally handle by FW. In some rare case where one of the switches is being updated, name server login could get affected. Trigger relogin to name server when driver detects this condition. Signed-off-by: Quinn Tran Signed-off-by: Himanshu Madhani --- drivers/scsi/qla2xxx/qla_def.h | 2 ++ drivers/scsi/qla2xxx/qla_gs.c | 21 +++++++++++++++++++++ drivers/scsi/qla2xxx/qla_init.c | 38 +++++++++++++++++++++++++++++++++++++- drivers/scsi/qla2xxx/qla_isr.c | 17 +++++++++++++++++ 4 files changed, 77 insertions(+), 1 deletion(-) diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h index 4127f35b669c..51b262b236b4 100644 --- a/drivers/scsi/qla2xxx/qla_def.h +++ b/drivers/scsi/qla2xxx/qla_def.h @@ -252,6 +252,8 @@ #define NPH_F_PORT 0x7fe /* FFFFFE */ #define NPH_IP_BROADCAST 0x7ff /* FFFFFF */ +#define NPH_SNS_LID(ha) (IS_FWI2_CAPABLE(ha) ? NPH_SNS : SIMPLE_NAME_SERVER) + #define MAX_CMDSZ 16 /* SCSI maximum CDB size. */ #include "qla_fw.h" diff --git a/drivers/scsi/qla2xxx/qla_gs.c b/drivers/scsi/qla2xxx/qla_gs.c index 5acebaf57796..3c003c2ee2c5 100644 --- a/drivers/scsi/qla2xxx/qla_gs.c +++ b/drivers/scsi/qla2xxx/qla_gs.c @@ -124,6 +124,7 @@ qla2x00_chk_ms_status(scsi_qla_host_t *vha, ms_iocb_entry_t *ms_pkt, int rval; uint16_t comp_status; struct qla_hw_data *ha = vha->hw; + bool lid_is_sns = false; rval = QLA_FUNCTION_FAILED; if (ms_pkt->entry_status != 0) { @@ -155,6 +156,26 @@ qla2x00_chk_ms_status(scsi_qla_host_t *vha, ms_iocb_entry_t *ms_pkt, } else rval = QLA_SUCCESS; break; + case CS_PORT_LOGGED_OUT: + if (IS_FWI2_CAPABLE(ha)) { + if (le16_to_cpu(ms_pkt->loop_id.extended) == + NPH_SNS) + lid_is_sns = true; + } else { + if (le16_to_cpu(ms_pkt->loop_id.extended) == + SIMPLE_NAME_SERVER) + lid_is_sns = true; + } + + if (lid_is_sns) { + ql_dbg(ql_dbg_async, vha, 0x502b, + "%s failed, Name server has logged out", + routine); + rval = QLA_NOT_LOGGED_IN; + set_bit(LOOP_RESYNC_NEEDED, &vha->dpc_flags); + set_bit(LOCAL_LOOP_UPDATE, &vha->dpc_flags); + } + break; default: ql_dbg(ql_dbg_disc, vha, 0x2033, "%s failed, completion status (%x) on port_id: " diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c index 2d36844a040c..12cde5692621 100644 --- a/drivers/scsi/qla2xxx/qla_init.c +++ b/drivers/scsi/qla2xxx/qla_init.c @@ -1041,6 +1041,20 @@ void qla2x00_fcport_event_handler(scsi_qla_host_t *vha, struct event_arg *ea) switch (ea->event) { case FCME_RELOGIN: + case FCME_RSCN: + case FCME_GIDPN_DONE: + case FCME_GPSC_DONE: + case FCME_GPNID_DONE: + if (test_bit(LOOP_RESYNC_NEEDED, &vha->dpc_flags) || + test_bit(LOOP_RESYNC_ACTIVE, &vha->dpc_flags)) + return; + break; + default: + break; + } + + switch (ea->event) { + case FCME_RELOGIN: if (test_bit(UNLOADING, &vha->dpc_flags)) return; @@ -4458,20 +4472,31 @@ qla2x00_configure_fabric(scsi_qla_host_t *vha) /* EMPTY */ ql_dbg(ql_dbg_disc, vha, 0x2045, "Register FC-4 TYPE failed.\n"); + if (test_bit(LOOP_RESYNC_NEEDED, + &vha->dpc_flags)) + break; } if (qla2x00_rff_id(vha)) { /* EMPTY */ ql_dbg(ql_dbg_disc, vha, 0x2049, "Register FC-4 Features failed.\n"); + if (test_bit(LOOP_RESYNC_NEEDED, + &vha->dpc_flags)) + break; } if (qla2x00_rnn_id(vha)) { /* EMPTY */ ql_dbg(ql_dbg_disc, vha, 0x204f, "Register Node Name failed.\n"); + if (test_bit(LOOP_RESYNC_NEEDED, + &vha->dpc_flags)) + break; } else if (qla2x00_rsnn_nn(vha)) { /* EMPTY */ ql_dbg(ql_dbg_disc, vha, 0x2053, "Register Symobilic Node Name failed.\n"); + if (test_bit(LOOP_RESYNC_NEEDED, &vha->dpc_flags)) + break; } } @@ -4543,17 +4568,28 @@ qla2x00_find_all_fabric_devs(scsi_qla_host_t *vha) memset(swl, 0, ha->max_fibre_devices * sizeof(sw_info_t)); if (qla2x00_gid_pt(vha, swl) != QLA_SUCCESS) { swl = NULL; + if (test_bit(LOOP_RESYNC_NEEDED, &vha->dpc_flags)) + return rval; } else if (qla2x00_gpn_id(vha, swl) != QLA_SUCCESS) { swl = NULL; + if (test_bit(LOOP_RESYNC_NEEDED, &vha->dpc_flags)) + return rval; } else if (qla2x00_gnn_id(vha, swl) != QLA_SUCCESS) { swl = NULL; + if (test_bit(LOOP_RESYNC_NEEDED, &vha->dpc_flags)) + return rval; } else if (qla2x00_gfpn_id(vha, swl) != QLA_SUCCESS) { swl = NULL; + if (test_bit(LOOP_RESYNC_NEEDED, &vha->dpc_flags)) + return rval; } /* If other queries succeeded probe for FC-4 type */ - if (swl) + if (swl) { qla2x00_gff_id(vha, swl); + if (test_bit(LOOP_RESYNC_NEEDED, &vha->dpc_flags)) + return rval; + } } swl_idx = 0; diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c index 2572121b765b..1eb46eb45005 100644 --- a/drivers/scsi/qla2xxx/qla_isr.c +++ b/drivers/scsi/qla2xxx/qla_isr.c @@ -973,6 +973,23 @@ qla2x00_async_event(scsi_qla_host_t *vha, struct rsp_que *rsp, uint16_t *mb) if (mb[1] == 0xffff) goto global_port_update; + if (mb[1] == NPH_SNS_LID(ha)) { + set_bit(LOOP_RESYNC_NEEDED, &vha->dpc_flags); + set_bit(LOCAL_LOOP_UPDATE, &vha->dpc_flags); + break; + } + + /* use handle_cnt for loop id/nport handle */ + if (IS_FWI2_CAPABLE(ha)) + handle_cnt = NPH_SNS; + else + handle_cnt = SIMPLE_NAME_SERVER; + if (mb[1] == handle_cnt) { + set_bit(LOOP_RESYNC_NEEDED, &vha->dpc_flags); + set_bit(LOCAL_LOOP_UPDATE, &vha->dpc_flags); + break; + } + /* Port logout */ fcport = qla2x00_find_fcport_by_loopid(vha, mb[1]); if (!fcport)