diff options
author | James Smart | 2006-07-06 21:49:42 +0200 |
---|---|---|
committer | James Bottomley | 2006-07-09 17:20:30 +0200 |
commit | d0e56dad5c10e2a34a830e02dfd3aca20e63e387 (patch) | |
tree | f5cfa0e5d760b5416ea9f6ae5f8fd53fc6c0a90e /drivers/scsi/lpfc/lpfc_nportdisc.c | |
parent | [SCSI] lpfc 8.1.7: Fix memory leak and cleanup code related to per ring looku... (diff) | |
download | kernel-qcow2-linux-d0e56dad5c10e2a34a830e02dfd3aca20e63e387.tar.gz kernel-qcow2-linux-d0e56dad5c10e2a34a830e02dfd3aca20e63e387.tar.xz kernel-qcow2-linux-d0e56dad5c10e2a34a830e02dfd3aca20e63e387.zip |
[SCSI] lpfc 8.1.7: Fixed infinite retry of REG_LOGIN mailbox failed due to MBXERR_RPI_FULL
Fixed infinite retry of REG_LOGIN mailbox failed due to MBXERR_RPI_FULL
Signed-off-by: James Smart <James.Smart@emulex.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_nportdisc.c')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_nportdisc.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/scsi/lpfc/lpfc_nportdisc.c b/drivers/scsi/lpfc/lpfc_nportdisc.c index 27d60ad897cd..bd0b0e293d63 100644 --- a/drivers/scsi/lpfc/lpfc_nportdisc.c +++ b/drivers/scsi/lpfc/lpfc_nportdisc.c @@ -1110,6 +1110,17 @@ lpfc_cmpl_reglogin_reglogin_issue(struct lpfc_hba * phba, phba->brd_no, did, mb->mbxStatus, phba->hba_state); + /* + * If RegLogin failed due to lack of HBA resources do not + * retry discovery. + */ + if (mb->mbxStatus == MBXERR_RPI_FULL) { + ndlp->nlp_prev_state = NLP_STE_UNUSED_NODE; + ndlp->nlp_state = NLP_STE_UNUSED_NODE; + lpfc_nlp_list(phba, ndlp, NLP_UNUSED_LIST); + return ndlp->nlp_state; + } + /* Put ndlp in npr list set plogi timer for 1 sec */ mod_timer(&ndlp->nlp_delayfunc, jiffies + HZ * 1); spin_lock_irq(phba->host->host_lock); |