Received: by 2002:a6b:fb09:0:0:0:0:0 with SMTP id h9csp2927223iog; Mon, 20 Jun 2022 07:39:42 -0700 (PDT) X-Google-Smtp-Source: AGRyM1srdPIDWuXrmakHg1J3P01T8Bkcpp+T3XyJuj52X4ShnX+FXUUKxoPYl7qWsD+12vHA5Uqm X-Received: by 2002:a17:90b:4a05:b0:1ec:a6bc:957a with SMTP id kk5-20020a17090b4a0500b001eca6bc957amr6481197pjb.92.1655735982214; Mon, 20 Jun 2022 07:39:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1655735982; cv=none; d=google.com; s=arc-20160816; b=epSFh/z6zrO0Z1+DZXImV44cLAff6OQtgHFrJ/6UVmve5tbi/Y8CHhXQMeo/OaizRf +nI+oNJZPzcw1PJl3MfaOHxe0uf3svvXg1t1zVquaTeBU5I2AJcIx42sMoTZgSrJ9tIh 3Y6QuKv9TdB2s0m5t/VxxeNlFYQhASVrsz2pPCGWh/5hXTYkPpawAVb6bKAGCGSQbjqu g0lkZQJJuPswPzcx/trCQKADreDlgPAhz/MZNCaIwEg+nUvfOr/O/UvrlXbOkXAJ1gkx IaOR51tx/nKv0fX9FiroHAh63fp0QMar7mehC+C+3HXcbITTXql/PUy40KGram4zakRj QeyA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=vQafvzvMMeIsN6TO+fF7o92lacXhv45MK0QX5yPIq0I=; b=xTcKrXZeNLLsf6rMTShbRj4pQWQ5Ck/bBOCZi8xmTex/O30J1tckfU3VasXMIRTJbV wWl09UlTa9Te3FhUjtuQ7gITmw9RkfQannHQv/eqDWWZ0/SJL6IPjHmGWR3oc0lnIqwy QNOUONPojHRUnd/lLXb3/xvBxn9hhLUovj+Ujl/AI+kUrxCN876Tk1wtrreGUTj3+ed4 ZznfK+6JDjfgDnTMf0uj5O/Z5+mkXp9R/LHlmJ210nTWRob3hjg2ikaPzlQn7HhyAeOx Iz//mpVefRxoG427Lw1vxJ6QxTwpc180V9DxPsIC8JQLUbM3dbKDsN4Fnqm1240ZaJYX HVyA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=A0X1dUEd; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id t7-20020a170902e84700b00163a0f48480si5320962plg.36.2022.06.20.07.39.27; Mon, 20 Jun 2022 07:39:42 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=A0X1dUEd; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S245310AbiFTNMf (ORCPT + 99 others); Mon, 20 Jun 2022 09:12:35 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51250 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1343572AbiFTNJ3 (ORCPT ); Mon, 20 Jun 2022 09:09:29 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5780719294; Mon, 20 Jun 2022 06:04:26 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 438A8B81092; Mon, 20 Jun 2022 13:01:47 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 75C1BC341C8; Mon, 20 Jun 2022 13:01:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1655730105; bh=4m8I5bsa9rUFm8cqQsgwl+vx1oK5Vr/2ogHeFYZGsRg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=A0X1dUEdrqN4+TFhoO/jq++GvBnZ5EG5QqEtguqihdU+1yAhrAODxDzBtB93pWj1U sJNOUJKjG+nBfzxEzzYBdvvGGKdCqxPjct0mmDf2dw6eRB8AXGUGoKEL1iM5YT2tib NEztMSB9tKgc3Tt8c3e27bjfljMuoP4ARhvI/t/8= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Justin Tee , James Smart , "Martin K. Petersen" , Sasha Levin Subject: [PATCH 5.10 21/84] scsi: lpfc: Fix port stuck in bypassed state after LIP in PT2PT topology Date: Mon, 20 Jun 2022 14:50:44 +0200 Message-Id: <20220620124721.519755549@linuxfoundation.org> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220620124720.882450983@linuxfoundation.org> References: <20220620124720.882450983@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-7.7 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: James Smart [ Upstream commit 336d63615466b4c06b9401c987813fd19bdde39b ] After issuing a LIP, a specific target vendor does not ACC the FLOGI that lpfc sends. However, it does send its own FLOGI that lpfc ACCs. The target then establishes the port IDs by sending a PLOGI. lpfc PLOGI_ACCs and starts the RPI registration for DID 0x000001. The target then sends a LOGO to the fabric DID. lpfc is currently treating the LOGO from the fabric DID as a link down and cleans up all the ndlps. The ndlp for DID 0x000001 is put back into NPR and discovery stops, leaving the port in stuck in bypassed mode. Change lpfc behavior such that if a LOGO is received for the fabric DID in PT2PT topology skip the lpfc_linkdown_port() routine and just move the fabric DID back to NPR. Link: https://lore.kernel.org/r/20220603174329.63777-7-jsmart2021@gmail.com Co-developed-by: Justin Tee Signed-off-by: Justin Tee Signed-off-by: James Smart Signed-off-by: Martin K. Petersen Signed-off-by: Sasha Levin --- drivers/scsi/lpfc/lpfc_nportdisc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/scsi/lpfc/lpfc_nportdisc.c b/drivers/scsi/lpfc/lpfc_nportdisc.c index e33f752318c1..1e22364a31fc 100644 --- a/drivers/scsi/lpfc/lpfc_nportdisc.c +++ b/drivers/scsi/lpfc/lpfc_nportdisc.c @@ -857,7 +857,8 @@ lpfc_rcv_logo(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp, lpfc_nvmet_invalidate_host(phba, ndlp); if (ndlp->nlp_DID == Fabric_DID) { - if (vport->port_state <= LPFC_FDISC) + if (vport->port_state <= LPFC_FDISC || + vport->fc_flag & FC_PT2PT) goto out; lpfc_linkdown_port(vport); spin_lock_irq(shost->host_lock); -- 2.35.1