From patchwork Wed Dec 16 23:11:55 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Smart X-Patchwork-Id: 7866631 Return-Path: X-Original-To: patchwork-linux-scsi@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 3B79DBEEED for ; Wed, 16 Dec 2015 23:12:24 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 4FC45203EB for ; Wed, 16 Dec 2015 23:12:23 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 653BF20396 for ; Wed, 16 Dec 2015 23:12:22 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754944AbbLPXMU (ORCPT ); Wed, 16 Dec 2015 18:12:20 -0500 Received: from mail-pf0-f180.google.com ([209.85.192.180]:36549 "EHLO mail-pf0-f180.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752743AbbLPXMO (ORCPT ); Wed, 16 Dec 2015 18:12:14 -0500 Received: by mail-pf0-f180.google.com with SMTP id o64so19589382pfb.3 for ; Wed, 16 Dec 2015 15:12:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=avagotech.com; s=google; h=date:from:to:subject:message-id:user-agent:mime-version :content-type:content-transfer-encoding; bh=HVfEywKoSenmFdtw/mz++7cv4cNa7gOe0M+7ZdhzUUo=; b=R1XLM71GbXhYf5OXOuTP9a6iIuOEGmewGDM7Si0x6D8BZd8QrwRH+XLIIaowqtOqEE M1Zp2gcPJMHuR3MkTazAyAMEdwmGqVX0OSv+lyptSemmvP2rZYEpx1piLvqAuWM0nt6x Rv5TGiDU0ehKa9FfM0A/bsW24AOGmwANcuLkM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:date:from:to:subject:message-id:user-agent :mime-version:content-type:content-transfer-encoding; bh=HVfEywKoSenmFdtw/mz++7cv4cNa7gOe0M+7ZdhzUUo=; b=HkamZi0Hbuc3e0FLPhSLHb83eJK4+An1TAgQe6TIKLq0+2vtBjyF+YFz8MdJGWnnAB EAdr4f1rhdaMbO4Bz1qVhqNwDbcDop+x9U9zumXR7Z8j6ZkGVpGV8fxdRnCzErvkP/n9 1Lvvm8lKdTzWLoCGmhcfvuTxmTW/zBTT9c1g8OWubb6G4LoGkkHlv2bbs2JyfAQMKn62 uK0xkGeIFTxudXguliNVRKIstNkFEJ45P2tWAoyLMDqGgGV74tLXTKpV9MUmTuk0nJIU lIeg5CNb5oNnMagUjG8UYtXT6ElVQTKGWqgU16xhkSPoF6PgxAos/9Op6ZtJwI9h+wq7 fI4w== X-Gm-Message-State: ALoCoQlIlqyEfnAgQFFkH8cbHybzWxwvXwJB/86rL6libwP00MriREWRN0VxG7o6rPFh6Zm2heiTIsklrHVRgd70A/szGzGgqw== X-Received: by 10.98.75.10 with SMTP id y10mr9644558pfa.86.1450307533717; Wed, 16 Dec 2015 15:12:13 -0800 (PST) Received: from myfc17 (cm-wififw.emulex.com. [138.239.220.50]) by smtp.gmail.com with ESMTPSA id q67sm7012386pfi.82.2015.12.16.15.12.12 for (version=TLS1 cipher=AES128-SHA bits=128/128); Wed, 16 Dec 2015 15:12:12 -0800 (PST) Date: Wed, 16 Dec 2015 18:11:55 -0500 From: james.smart@avagotech.com (James Smart) To: linux-scsi@vger.kernel.org Subject: [PATCH 04/17] lpfc: Fix RegLogin failed error seen on Lancer FC during port bounce Message-ID: <5671efbb.hZSIh/wq1cqxxyH9%james.smart@avagotech.com> User-Agent: Heirloom mailx 12.5 7/5/10 MIME-Version: 1.0 Sender: linux-scsi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org X-Spam-Status: No, score=-6.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,T_DKIM_INVALID,T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Fix RegLogin failed error seen on Lancer FC during port bounce Fix the statemachine and ref counting. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke --- drivers/scsi/lpfc/lpfc_els.c | 14 +++++++++----- drivers/scsi/lpfc/lpfc_hbadisc.c | 8 ++++---- drivers/scsi/lpfc/lpfc_nportdisc.c | 3 +++ 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/drivers/scsi/lpfc/lpfc_els.c b/drivers/scsi/lpfc/lpfc_els.c index f6dd15b..d508378 100644 --- a/drivers/scsi/lpfc/lpfc_els.c +++ b/drivers/scsi/lpfc/lpfc_els.c @@ -3779,14 +3779,17 @@ lpfc_cmpl_els_rsp(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, lpfc_nlp_set_state(vport, ndlp, NLP_STE_REG_LOGIN_ISSUE); } + + ndlp->nlp_flag |= NLP_REG_LOGIN_SEND; if (lpfc_sli_issue_mbox(phba, mbox, MBX_NOWAIT) != MBX_NOT_FINISHED) goto out; - else - /* Decrement the ndlp reference count we - * set for this failed mailbox command. - */ - lpfc_nlp_put(ndlp); + + /* Decrement the ndlp reference count we + * set for this failed mailbox command. + */ + lpfc_nlp_put(ndlp); + ndlp->nlp_flag &= ~NLP_REG_LOGIN_SEND; /* ELS rsp: Cannot issue reg_login for */ lpfc_printf_vlog(vport, KERN_ERR, LOG_ELS, @@ -3843,6 +3846,7 @@ out: * the routine lpfc_els_free_iocb. */ cmdiocb->context1 = NULL; + } lpfc_els_free_iocb(phba, cmdiocb); diff --git a/drivers/scsi/lpfc/lpfc_hbadisc.c b/drivers/scsi/lpfc/lpfc_hbadisc.c index f0777f2..b19237b 100644 --- a/drivers/scsi/lpfc/lpfc_hbadisc.c +++ b/drivers/scsi/lpfc/lpfc_hbadisc.c @@ -3452,10 +3452,10 @@ lpfc_mbx_cmpl_reg_login(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb) spin_lock_irq(shost->host_lock); ndlp->nlp_flag &= ~NLP_IGNR_REG_CMPL; spin_unlock_irq(shost->host_lock); - } else - /* Good status, call state machine */ - lpfc_disc_state_machine(vport, ndlp, pmb, - NLP_EVT_CMPL_REG_LOGIN); + } + + /* Call state machine */ + lpfc_disc_state_machine(vport, ndlp, pmb, NLP_EVT_CMPL_REG_LOGIN); lpfc_mbuf_free(phba, mp->virt, mp->phys); kfree(mp); diff --git a/drivers/scsi/lpfc/lpfc_nportdisc.c b/drivers/scsi/lpfc/lpfc_nportdisc.c index daeda6d..9e571dd 100644 --- a/drivers/scsi/lpfc/lpfc_nportdisc.c +++ b/drivers/scsi/lpfc/lpfc_nportdisc.c @@ -2325,6 +2325,9 @@ lpfc_cmpl_reglogin_npr_node(struct lpfc_vport *vport, if (vport->phba->sli_rev < LPFC_SLI_REV4) ndlp->nlp_rpi = mb->un.varWords[0]; ndlp->nlp_flag |= NLP_RPI_REGISTERED; + if (ndlp->nlp_flag & NLP_LOGO_ACC) { + lpfc_unreg_rpi(vport, ndlp); + } } else { if (ndlp->nlp_flag & NLP_NODEV_REMOVE) { lpfc_drop_node(vport, ndlp);