From patchwork Tue Dec 6 20:30:49 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Madhani, Himanshu" X-Patchwork-Id: 9463279 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 518FA6022E for ; Tue, 6 Dec 2016 21:08:20 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 436A2284E5 for ; Tue, 6 Dec 2016 21:08:20 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 38163284EA; Tue, 6 Dec 2016 21:08:20 +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 12ED9284E5 for ; Tue, 6 Dec 2016 21:08:19 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751998AbcLFVIS (ORCPT ); Tue, 6 Dec 2016 16:08:18 -0500 Received: from mail-bn3nam01on0089.outbound.protection.outlook.com ([104.47.33.89]:6495 "EHLO NAM01-BN3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751254AbcLFVIQ (ORCPT ); Tue, 6 Dec 2016 16:08:16 -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=o9JOzJ/fdDZbzm+5oRxRXz4PRolj43Et0Excm/OvTPc=; b=Ffwh2wZ34XpZ1HrIvNYTJ9RCaZVwAh06CzDBzpLABVOKHsTOCMGzdFsBXINjJbcPgasUA75ZNix8vX6pyGoMVWus4mYYVC1nk+IYFdvffJ7OaSGTIHW/YAMJefYwjhRdsdu2HFKGLf/gEuvjn9nejzxbfCHFv1NKKKjyf0WpbsY= Received: from BN1PR07CA0056.namprd07.prod.outlook.com (10.255.193.31) by BLUPR0701MB2081.namprd07.prod.outlook.com (10.163.122.151) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.747.13; Tue, 6 Dec 2016 21:08:13 +0000 Received: from BL2FFO11FD046.protection.gbl (2a01:111:f400:7c09::196) by BN1PR07CA0056.outlook.office365.com (2a01:111:e400:45::31) 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; Tue, 6 Dec 2016 21:08:13 +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 BL2FFO11FD046.mail.protection.outlook.com (10.173.161.208) 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; Tue, 6 Dec 2016 21:08:12 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:; UpperCasedChecksum:; SizeAsReceived:1170; 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; Tue, 6 Dec 2016 13:08:10 -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 uB6KUtMc002427; Tue, 6 Dec 2016 12:30:55 -0800 Received: (from root@localhost) by dut1171.mv.qlogic.com (8.14.7/8.14.7/Submit) id uB6KUtFS002426; Tue, 6 Dec 2016 12:30:55 -0800 From: Himanshu Madhani To: , CC: , , Subject: [PATCH 20/22] qla2xxx: Allow relogin to go through if remote login did not finish Date: Tue, 6 Dec 2016 12:30:49 -0800 Message-ID: <1481056251-2310-21-git-send-email-himanshu.madhani@cavium.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1481056251-2310-1-git-send-email-himanshu.madhani@cavium.com> References: <1481056251-2310-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:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(7916002)(2980300002)(428002)(199003)(189002)(50986999)(189998001)(33646002)(38730400001)(39450400002)(76176999)(50466002)(4326007)(101416001)(626004)(80596001)(39410400001)(356003)(69596002)(39850400001)(105586002)(86362001)(305945005)(39840400001)(36756003)(4001430100002)(107886002)(92566002)(6666003)(106466001)(2950100002)(4720700003)(81156014)(81166006)(42186005)(8676002)(48376002)(8936002)(5660300001)(5001770100001)(50226002)(5003940100001)(7846002)(2906002)(47776003)(87636001); DIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR0701MB2081; 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; BL2FFO11FD046; 1:aV40mN1J6yI2srNpvaIfn71PxBoSFWQkjb7L7MxZ9BQQiT7XF+l+L93zo2kZlA8/RHxTgHjMJqsKplXjP6bp0lsZsCUMqshD1MYchYS0USXoVb0VQZYIpDRPD9i2evwo/NFmdJRAUuFhh8k9WAGwRJk15txz84bPRDQczzchqq8H+QBj3eAb82vw6czaFxrvUN/JqtSVHcCpwxS2PJ6dSvN6a8A9aeXPIwtcYOh3zGpjOlSB5Behv3hNTEdsyHLU+8xuDFGMVnhp7LOrYsypFI4zBgGfh6IslBo5xDdub9HwZE7dvkyCHs7pFNtLV9dNyPVrom1RJsO0LAgZw4sw6s+xiwfgCXDlwI1xkkZ0nEUv7vN7w1ca1XbWEKbfbtMUraIvFH6/zHVljdc7H+w9NgMXwTK0I0HKb8bxUBBH93DfjEi2obKmR/FNxMVqgI9+gCpmU48oaqpN64YbTYuuBEZdqotgxfbyZ2WV+V2PFYAgAuVoV1hUYLAsxW7CKyPMStXcZ4/JyWfQkK0V3pFWSA== X-MS-Office365-Filtering-Correlation-Id: 1b627e12-0cb4-42b5-ea65-08d41e1bfd7c X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:BLUPR0701MB2081; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB2081; 3:wV6hkaWqaZZSYAZAFqr2Jr0VaC8eIAIhezKnZoUVxQAWS6raQQpqSzDeq6MP9bcRsBjgpBQD+mwWZFdgKPnEx/Yq9u3eueJUW+Uw5xc2H2HVcNp5Leg23k8rV/AYbISczR21IO6gBpBUb8TYxHVLpeIxtMYQCkWrbh+QVi+TFXXQYWinofKunvHI4MCCz46lFDGLPhIcltc52gctcchT9YecpixKiPLgwgF/CjaqKggzx7pJv3mDWvYB1XqJhYt8bMur6cAeBeB/mxbWSnRQ9kt2ms6XoZsWkKSdDdU4+BZbdyegC2b+sTF/OJDf0rez/fWWGdtCqFkTRAFGqi18gEtu6U99icjNEDyvpxevdJeBm1yzAwiKrjFStFTGXn/A; 25:hFn/22ARBDwKp4bKNIIpWonhfCwOnRfSYmtE7ta10J68RwJfxzwMZituAi0BPVa/9ESp2vyHkOc8XFOldZ91/tQmg+u7btBEgFZW3iSu2JpvLSiCjNaWy6t8h2iIimxF8ANQZHR3o47kdkmR5pHbz7gmddj0DNfESArOF+CNV7nDAZ86jCx4zfle+PI5EdAI1AHdWBn3rGICG2OqKp2D7MoD+0J2mNa3415UG+bQd0XGHZFx6IL7sfBrodwqeTLARYNKbsa7uJxCUzLBs+QB9irWl7S89MTLXNPOfO/LW17QdrGTeapNlRCXCcp6ZUwhn1FyeIIDY4+SbpdmVhdXBBg+9/unsQHAKxNHA0sPPTB7xtQRIf/JVU2g43hcGV9AqEQGQti/EXqipCIsPzOSJiQQtc+/sW6CPKmHu5V/uEon8eKWW3y+rpWLBNt5RJm0wIK1fZXi53S7MFgWlKy45w== X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB2081; 31:WtOcC0kD5cK8/JMorsNZ5dzpR1M9+dp1QPBnDSJJunLedaxXjIt7CPAuEJjlCeYSZsBrWyXnPFvzbV+8TlDyyB2VKUMVaJuNfnRtqcD3sDL12Sw3TaDRpv+JYXxG+COjLPhTFbXF07thKv2kGcCB+ZDsaChltqxOEiPvbFw0Jj3yGJxw/7cTFD4dI2N+8rJ9tWKrocQKVxpdL9BNQ0HwrNZ/N/y2g2EgHS867ByosSABvVxg1qDgi9010lyXkMYtWlhzHGgEWSt2VEx987u1eKzJfM2DFY72kaZdIveKOYM=; 20:rhFmviCyFyoYyDpg9BLIIoLuO74m7vyrrwu7QW5Q5j8KmdnPaJm0Idvh83CVlhTq9cEuzA9XMDs7jhxFTdK7tnDIl+cLeeHsuOU/bfkVvJHo3f0VuXzPRnuEfdLAE2gFYI4PvFYz9LO8LfbEDHnPTN9KZJr8wXHgIySR1wtfAdQNeeUL4VIh4QBiFk6Pq1Bx3gBTRbc8wi2LC66n/ZP8IIwCCyiIRXQQREf1RRjcL2yCEUcUIDxbR3WH0lhiAe2kSI4WkQ2lbuqQvI9Eljfp4iLwixn3dOsj21e906/8dq4AIAWUWmWPlYyo0mMkLfl8pxisRcHfFzfIYa0P/6FUz8DNK5UdH3i7OMuad+AWs+ggftQesY7gBNSNCBkilalJwcHPlx9e1kUPMzWhSjTlBeSpYxEukeuUXv6l403Wam7mmPY5k/YByI9dGVV8K92ic7FE0cAdWxsS8cL5JQP5UkGSn0ufNhzI2H94YsEU+mZ8tmHjR+af/mQVfnNE2aR5 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(13017025)(13023025)(13015025)(13024025)(13018025)(8121501046)(5005006)(10201501046)(3002001)(6041248)(20161123564025)(20161123562025)(20161123555025)(20161123560025)(6072148); SRVR:BLUPR0701MB2081; BCL:0; PCL:0; RULEID:; SRVR:BLUPR0701MB2081; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB2081; 4:Hr0RTyF49yA8OesgFbesR8Um1HHxGnTGc5/F9Zg2pdR3ELNbctZC/yItEdNjsiRNMYUpIYYJldT9kBPLuPeBtTkEnQ8ORV8ny9IHhrxiibVtdheO1jCGrSW7eB3VXcA9vYC0sDMuVS/sgcFFfWR/LOdLqC0Pu1frffmDe9QrOWir/oLtq8Jy7CG9RaEIVcqaA8y8Z+7l/kWG7yqQe2+ddvAHcnzf3nW1F4tfJB0FmjzOw9ZGX0Bjb1YKaQ+i3BZNB3cUAHI5m10UNsXenlsF6RMdrQG9jNfNln9uHMrpItpipGtl0PKGOH9c6rzAv0GFtTvC5WAiVfTXzB+oeca0PiB86fxlBw9BNv9WRaknDl2jIf8QnCpuIB2g2cIi3NgTJtBUMcNxKL8MeUzJ+znCOYAwy8/VPv4tGaqj8lXye7vRFG9ftqDzt5w+mkjRGsgaMBE1h1SX4BK/fRW1xtlcrLpdbzrwMGyZeKAZUuARGvat6Z88EIFOenrUO6DRaViGBrWUjXg4msibR49cChZk0s3p6azjZRWNBzAcQWBk9I9zzUjDuAt8HIl1gODMovA3CZ39ob0C4pFK6xz1GF5NXfUPu0zcuyJyErV+CxKtSvcNcRjel6cZ4XMksPuELYpM0MrDiXsvNFdfOUJb1Hqr16F/9Oz2+CIgA4FnoZyBkbo= X-Forefront-PRVS: 01480965DA X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BLUPR0701MB2081; 23:c6GmnY5K3bxZ4fcIfr5KbHA5JQq3yr1LtycTxuR?= =?us-ascii?Q?Kw7F+sIQzL7zbZl5kKoH6ornvfyJOjXFPCAkHQD8EbvINID/OY5EKP4dWPvy?= =?us-ascii?Q?l1TqJjeo7lPthjP5MKkNt/vtMmyNTFewVFWNUgFnL1SUlOVdyQKcwPgv2BSW?= =?us-ascii?Q?DAjD5NYs9vlZg9n0ptwIB71S0moDw+v4gLkEe01vz5Z9zotoBgbDATucqfpP?= =?us-ascii?Q?b5awfWKmP4BWBX0+tN5c6GPAQ/ba9Ec5kcSeXZRdW+Vr+kdDHedKcBqXykER?= =?us-ascii?Q?2GVPw3AHLSIrJxuS5k3Pr9ysNCR4h4xtUr02AgWiGTu1dOKLn4X6ItzbGNBz?= =?us-ascii?Q?kXMvGSVyJMlpzTMn7CvbXgWBOJiJtNEwgUm+EWx6tgn+ZRTHf+2lcr7JQBE8?= =?us-ascii?Q?PqXFwWyerqf4HARM7QaF9/qdNUPdITVgqO3eoK9Jy/dYbvS6Tv85pYoIpAa3?= =?us-ascii?Q?4g/RpyLU0ZMsu3eTKcTzV1chU3CdTnj5xXVgXpn7Gdl18Nd9XmxaVbxKyHNX?= =?us-ascii?Q?uRpQa9yOYHwM/60yQ/vXWdS9ZxcgTxT9bXzU+Tbdh5m3Hw1XD4cQKY1iLAbG?= =?us-ascii?Q?eHqv+6HdNDf/A4j3hxBoVLPWQzALVYju0bwui+UDnd2xZzR7c7qqVsdjkLGj?= =?us-ascii?Q?V/WCNKIlBJX7a0SkhzwPZSGnEZmX2UUfQY8yBLNId3XKUcn45lOi1V0nPks0?= =?us-ascii?Q?Jdj4mCAA8MrtaPG37x8X2Ao0HbhC5fQ3mHvrXxLOASM3baVDZjXYFmVTAL74?= =?us-ascii?Q?PtAUI/JMuhPvrJOxP0MWRoBZS7p+nryJr8oZ0g8NurflAzIGGnS5SVTA1HS2?= =?us-ascii?Q?Gnr3lu4Ld8+BH1e7GpsZSS1JzRQ5+25UlGAK2OYOzTtxO18n08dpHtL2H4OH?= =?us-ascii?Q?JVmnrExOzFgGH537+sq0T4BlFEbMlGtTM14wz40Xtg2OLXhmfq++2Fw230DX?= =?us-ascii?Q?fGwWh8VZnZHRpoSW9w9Y+Q3rk3exfYp9P0sglOUOpQ22TZU+CJx4e9m7cbyz?= =?us-ascii?Q?Fl25OEIVRLf749c98gWcsg5PD1WB20i7Lzhclxbv0BpmFGUXVFD6O8XRI+El?= =?us-ascii?Q?BtJiTlDngDnbg+/Nv0NNeLVtHULGZi7PsSVHJn+gnBWyxfEwd1Fm0/mMFcL0?= =?us-ascii?Q?pGHafQsNGXWqOS0VBXYmyKiA8xBpj0g4xB5n0RYEkfhiGcaQoiOjzKefnhXg?= =?us-ascii?Q?u/IyOe3eRCC/+6RQ=3D?= X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB2081; 6:1sFQmqfLk1CmcH8uIhNmCJHr7/n7io2N3QrRJsoXoDLOcmxb9LKk8hk0zxKd5fO4CB8hj+STorrQwj7S9yPPqjghQlzXb0JxE7j3pfiRzgp/l81U1tB7z3Nx0BhUQNLZZEXBmWNCjR4rL57IenUuxq5JT32HIydiWK9MgX0KC5sc6KXcu8FY5HvSed+JrWbp4ZFuvLk7CALbFQMm8LR/a/d7znezK/xm6Yy7GAMvbkVot4H7l7jU6j0QlMKdBguCootq0RYRiJNOigSYCYXVzrn36YB7KQ/Ayqgle4lY33CanSe5BmEigCQ0sv2i3yUdsSksGE/tu7Fi+cz6KBQZgQVMzw8jSKmnmeL+3Y8o2n30KuppCpHOx1mnOOsZ2O8hKPjiJ/ANSEStbGBhmd2FYmd9RKRVO4U+YGQDgtjgfgdQfRXyyJKVrhWWA80Lu5hFbygy+SMmEWllnvwJ+qMH9Q==; 5:9cCO5X7NCZrlRuAXkLQec3F+kox70alGTiI1e6BHc7ZjXGWFjpNiGrXuqNlJzTYb6OOeMZwU2cehN+jw5+rz11L8vSQxqpjjbn8ZKidVZk1mbdO3AhlrhQyqWxREN0Bk4YlAHJJVWUGd8WI6Kl2NzA==; 24:xQyO8HMGLUI3ClLk1glJr4+1FNEC2MYeOAmkTLlixp13Uwby+XHbYbfdshCoMmtsvN9A+Bypoz0OwxR4wn/BNBDgRiKIYYvrdPrmqLqGcJk= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB2081; 7:7ku8HCSEbQcL6k1ZZTqbQR1iOAcvIyrHtcpBDmHu5REIYi29FzcpYIcvvoiOhqp9MXJGe0z2BLrEG0WtidPO/vvCkbrogrD/jivmvopqJ+XFFbfM39J4HTE0gjiCqxBX9EgoEAfhPYUlIC4pkg0WZiXtbKhk3tra3O3OMwf4v4ThaDIFS0ZdKo11m8j1IyuNeKC1p6OU+ZJdBPPmilbTNUbCGbwx9VArdy9kOVyYU+gbD0vvSMcf8r0uur1D3A1UBDA8c69TIVonGgb7rUATPMNjXCKAp8oM5CM1tdzOjZ36JerVEhITaxQKPlr4uzmJ14KqaznubQ/nwc/ABe/g02n6CcBXyFGYu4fA5CcfFzXhiFqt1U8rXpq0nk+VyVpyXKTY3WRzqQO0uLZPS5I5W+CA2NyT5WenNPpYjAiGnI8+fUhU5icNuaTViVwggK4BUCZSRwnSxXxOalSpQQuyKw== X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Dec 2016 21:08:12.8422 (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: BLUPR0701MB2081 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 Signed-off-by: Quinn Tran Signed-off-by: Himanshu Madhani --- drivers/scsi/qla2xxx/qla_def.h | 2 ++ drivers/scsi/qla2xxx/qla_init.c | 14 ++++++++++++-- drivers/scsi/qla2xxx/qla_isr.c | 25 +++++++++++++++++++------ drivers/scsi/qla2xxx/qla_os.c | 2 +- drivers/scsi/qla2xxx/qla_target.c | 2 ++ 5 files changed, 36 insertions(+), 9 deletions(-) diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h index 3464d65..404acee 100644 --- a/drivers/scsi/qla2xxx/qla_def.h +++ b/drivers/scsi/qla2xxx/qla_def.h @@ -2216,6 +2216,8 @@ enum rscn_addr_format { struct ct_sns_desc ct_desc; enum discovery_state disc_state; enum login_state fw_login_state; + unsigned long plogi_nack_done_jiff; + 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 d8b18a9..549a7c6 100644 --- a/drivers/scsi/qla2xxx/qla_init.c +++ b/drivers/scsi/qla2xxx/qla_init.c @@ -895,10 +895,15 @@ 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) { + unsigned long t = fcport->plogi_nack_done_jiff + HZ; + if (time_before_eq(jiffies, t)) + return 0; + } + if (vha->host->active_mode == MODE_TARGET) /* for pure Target Mode. Login will not be initiated */ return 0; @@ -1060,10 +1065,15 @@ 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) { + unsigned long t = fcport->plogi_nack_done_jiff + HZ; + if (time_before_eq(jiffies, t)) + 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 c81ada0..c02033b 100644 --- a/drivers/scsi/qla2xxx/qla_isr.c +++ b/drivers/scsi/qla2xxx/qla_isr.c @@ -1625,9 +1625,9 @@ static void qla_irq_affinity_notify(struct irq_affinity_notify *, 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, @@ -1638,8 +1638,9 @@ static void qla_irq_affinity_notify(struct irq_affinity_notify *, 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])); @@ -1679,6 +1680,17 @@ static void qla_irq_affinity_notify(struct irq_affinity_notify *, 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; + break; + } + data[0] = MBS_COMMAND_ERROR; + break; case LSC_SCODE_NOXCB: vha->hw->exch_starvation++; if (vha->hw->exch_starvation > 5) { @@ -1700,8 +1712,9 @@ static void qla_irq_affinity_notify(struct irq_affinity_notify *, } 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_os.c b/drivers/scsi/qla2xxx/qla_os.c index 8137238..3e089c3 100644 --- a/drivers/scsi/qla2xxx/qla_os.c +++ b/drivers/scsi/qla2xxx/qla_os.c @@ -4512,7 +4512,7 @@ void qla24xx_create_new_sess(struct scsi_qla_host *vha, struct qla_work_evt *e) fcport->flags |= FCF_FABRIC_DEVICE; fcport->fw_login_state = DSC_LS_PLOGI_PEND; - memcpy(&fcport->port_name, e->u.new_sess.port_name, + memcpy(fcport->port_name, e->u.new_sess.port_name, WWN_SIZE); } else { ql_dbg(ql_dbg_disc, vha, 0xffff, diff --git a/drivers/scsi/qla2xxx/qla_target.c b/drivers/scsi/qla2xxx/qla_target.c index 8a4b506..521b114 100644 --- a/drivers/scsi/qla2xxx/qla_target.c +++ b/drivers/scsi/qla2xxx/qla_target.c @@ -576,6 +576,7 @@ void qla2x00_async_nack_sp_done(void *v, 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_jiff = jiffies; break; case SRB_NACK_PRLI: @@ -3509,6 +3510,7 @@ static int __qlt_send_term_imm_notif(struct scsi_qla_host *vha, return -ENOMEM; } + vha->vha_tgt.qla_tgt->notify_ack_expected++; pkt->entry_type = NOTIFY_ACK_TYPE; pkt->entry_count = 1; pkt->handle = QLA_TGT_SKIP_HANDLE;