From patchwork Wed May 31 06:04:38 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Smart X-Patchwork-Id: 9755869 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 CF9A8602CC for ; Wed, 31 May 2017 06:05:15 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C262F26538 for ; Wed, 31 May 2017 06:05:15 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id B5FBE265B9; Wed, 31 May 2017 06:05:15 +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.5 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, RCVD_IN_DNSWL_HI, RCVD_IN_SORBS_SPAM 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 6900026538 for ; Wed, 31 May 2017 06:05:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751086AbdEaGFO (ORCPT ); Wed, 31 May 2017 02:05:14 -0400 Received: from mail-qk0-f193.google.com ([209.85.220.193]:36517 "EHLO mail-qk0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751083AbdEaGFM (ORCPT ); Wed, 31 May 2017 02:05:12 -0400 Received: by mail-qk0-f193.google.com with SMTP id y128so733726qka.3 for ; Tue, 30 May 2017 23:05:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=bQStyd4QLnnhobwi4G6NoPyOpPeWgMaU0aWSfGbdiso=; b=AsVWvMTDF1ueSmv9XeQS8P/egVKuIZuHTwTc6PsOkzGV1MCEWw2q/lajVmPqDheg1l 9UAYD0cUoIXRusylmHcQ3fVrZN56Hb9p364OfR1jiFImxw4boliu0Vcr/vTZxVxb8ASk z8BdwBYpkAb3/hkSbAFXRpgDO73zUuCO3VyVXtNtXXWZAFogUuByKiBWvpl6f1yQTICX A3fMxa2yIEyYfuebv4wM+3nDfK130fdEOcPwYqdAM8ZRXRTblUu/sB9Y/zDNuI+yz6um k91v/m7CIveqIY0CxLGJGdlzOyAmj+iSWAzGcYwWYcxHizj/GbDP4g+rAby2np2pzMU4 JHlg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=bQStyd4QLnnhobwi4G6NoPyOpPeWgMaU0aWSfGbdiso=; b=qSFJ94HisvQ4PKMPdof7aU7SNxXbb7RhAdV/zyPrrk4rt0CsOiThkB7hdevtTngZ3n yobUPg6roDX2gvRmRwIZbuI/LMVMxinD16ZLsvMyXAAfTfgWlZ12Gr2+N1Y7k1/IV9/L AHeqBiK6mljvV1VS5RxilogxE2fF1huxc/ZuFrpxqHZkjiNzIs48UUWjVe4MRUepcZgY LqicMcuts7IKDVZcGCeIluo3xVOewdKP1vF7Wmv/PjnQC5ldtsmTB8nG9r0QN845bhqq cKr5Kl69lmGdcdToiBuoMefru7M+HZl2r50tinjm0N7rL6RcAnkccX4TaEKx7/JNMyjt /LOA== X-Gm-Message-State: AODbwcCsMJYOp5d9vliSOgBAhOVTLJOPPCrlu73PODGx+rAMPUad0rzi j//l7VeqLSOBCvyG X-Received: by 10.55.72.77 with SMTP id v74mr16809qka.208.1496210711898; Tue, 30 May 2017 23:05:11 -0700 (PDT) Received: from localhost.localdomain ([192.19.224.250]) by smtp.gmail.com with ESMTPSA id 28sm10066433qtm.47.2017.05.30.23.05.10 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 30 May 2017 23:05:11 -0700 (PDT) From: James Smart To: linux-scsi@vger.kernel.org Cc: James Smart , Dick Kennedy , James Smart Subject: [PATCH 14/15] lpfc: Fix vports not logging into target Date: Tue, 30 May 2017 23:04:38 -0700 Message-Id: <20170531060439.2073-15-jsmart2021@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170531060439.2073-1-jsmart2021@gmail.com> References: <20170531060439.2073-1-jsmart2021@gmail.com> 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 vports cannot login to target. For vports, lpfc_nodelist is allocated for targets only on completion of GFF_ID command. Driver checks if lpfc_nodelist exists for target before sending GFF_ID. So, GFF_ID and PLOGI are not sent. As mentioned by the comment in lpfc_prep_node_fc4type() routine, do not send GFF_ID only if this NPortID is previously identified as FCP target. Send GFF_ID if it is a newly identified remote port from GID_FT response. Signed-off-by: Dick Kennedy Signed-off-by: James Smart --- drivers/scsi/lpfc/lpfc_ct.c | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/drivers/scsi/lpfc/lpfc_ct.c b/drivers/scsi/lpfc/lpfc_ct.c index f2cd19c6c2df..2853a6d352f8 100644 --- a/drivers/scsi/lpfc/lpfc_ct.c +++ b/drivers/scsi/lpfc/lpfc_ct.c @@ -503,26 +503,23 @@ lpfc_prep_node_fc4type(struct lpfc_vport *vport, uint32_t Did, uint8_t fc4_type) Did, vport->fc_flag, vport->fc_rscn_id_cnt); /* - * This NPortID was previously a FCP target, + * This NPortID was previously a FCP/NVMe target, * Don't even bother to send GFF_ID. */ ndlp = lpfc_findnode_did(vport, Did); - if (ndlp && NLP_CHK_NODE_ACT(ndlp)) - ndlp->nlp_fc4_type = fc4_type; - - if (ndlp && NLP_CHK_NODE_ACT(ndlp)) { - ndlp->nlp_fc4_type = fc4_type; - - if (ndlp->nlp_type & NLP_FCP_TARGET) - lpfc_setup_disc_node(vport, Did); - - else if (lpfc_ns_cmd(vport, SLI_CTNS_GFF_ID, - 0, Did) == 0) - vport->num_disc_nodes++; - - else - lpfc_setup_disc_node(vport, Did); - } + if (ndlp && NLP_CHK_NODE_ACT(ndlp) && + (ndlp->nlp_type & + (NLP_FCP_TARGET | NLP_NVME_TARGET))) { + if (fc4_type == FC_TYPE_FCP) + ndlp->nlp_fc4_type |= NLP_FC4_FCP; + if (fc4_type == FC_TYPE_NVME) + ndlp->nlp_fc4_type |= NLP_FC4_NVME; + lpfc_setup_disc_node(vport, Did); + } else if (lpfc_ns_cmd(vport, SLI_CTNS_GFF_ID, + 0, Did) == 0) + vport->num_disc_nodes++; + else + lpfc_setup_disc_node(vport, Did); } else { lpfc_debugfs_disc_trc(vport, LPFC_DISC_TRC_CT, "Skip2 GID_FTrsp: did:x%x flg:x%x cnt:%d",