* [PATCH 04/17] lpfc: Fix RegLogin failed error seen on Lancer FC during port bounce
@ 2015-12-16 23:11 James Smart
2015-12-17 8:16 ` Hannes Reinecke
0 siblings, 1 reply; 2+ messages in thread
From: James Smart @ 2015-12-16 23:11 UTC (permalink / raw)
To: linux-scsi
Fix RegLogin failed error seen on Lancer FC during port bounce
Fix the statemachine and ref counting.
Signed-off-by: Dick Kennedy <dick.kennedy@avagotech.com>
Signed-off-by: James Smart <james.smart@avagotech.com>
---
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 <NPortid> */
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);
--
1.7.11.7
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH 04/17] lpfc: Fix RegLogin failed error seen on Lancer FC during port bounce
2015-12-16 23:11 [PATCH 04/17] lpfc: Fix RegLogin failed error seen on Lancer FC during port bounce James Smart
@ 2015-12-17 8:16 ` Hannes Reinecke
0 siblings, 0 replies; 2+ messages in thread
From: Hannes Reinecke @ 2015-12-17 8:16 UTC (permalink / raw)
To: James Smart, linux-scsi
On 12/17/2015 12:11 AM, James Smart wrote:
>
> Fix RegLogin failed error seen on Lancer FC during port bounce
>
> Fix the statemachine and ref counting.
>
> Signed-off-by: Dick Kennedy <dick.kennedy@avagotech.com>
> Signed-off-by: James Smart <james.smart@avagotech.com>
> ---
> 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 <NPortid> */
> 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);
>
Not sure if that belong into this patch, but let's not be picky here.
Reviewed-by: Hannes Reinecke <hare@suse.com>
Cheers,
Hannes
--
Dr. Hannes Reinecke zSeries & Storage
hare@suse.de +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton
HRB 21284 (AG Nürnberg)
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2015-12-17 8:16 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-12-16 23:11 [PATCH 04/17] lpfc: Fix RegLogin failed error seen on Lancer FC during port bounce James Smart
2015-12-17 8:16 ` Hannes Reinecke
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.