aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/lpfc/lpfc_sli.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_sli.c')
-rw-r--r--drivers/scsi/lpfc/lpfc_sli.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/scsi/lpfc/lpfc_sli.c b/drivers/scsi/lpfc/lpfc_sli.c
index 1ab7937097a..7a61455140b 100644
--- a/drivers/scsi/lpfc/lpfc_sli.c
+++ b/drivers/scsi/lpfc/lpfc_sli.c
@@ -12661,6 +12661,7 @@ lpfc_cleanup_pending_mbox(struct lpfc_vport *vport)
12661 struct lpfc_hba *phba = vport->phba; 12661 struct lpfc_hba *phba = vport->phba;
12662 LPFC_MBOXQ_t *mb, *nextmb; 12662 LPFC_MBOXQ_t *mb, *nextmb;
12663 struct lpfc_dmabuf *mp; 12663 struct lpfc_dmabuf *mp;
12664 struct lpfc_nodelist *ndlp;
12664 12665
12665 spin_lock_irq(&phba->hbalock); 12666 spin_lock_irq(&phba->hbalock);
12666 list_for_each_entry_safe(mb, nextmb, &phba->sli.mboxq, list) { 12667 list_for_each_entry_safe(mb, nextmb, &phba->sli.mboxq, list) {
@@ -12677,6 +12678,11 @@ lpfc_cleanup_pending_mbox(struct lpfc_vport *vport)
12677 __lpfc_mbuf_free(phba, mp->virt, mp->phys); 12678 __lpfc_mbuf_free(phba, mp->virt, mp->phys);
12678 kfree(mp); 12679 kfree(mp);
12679 } 12680 }
12681 ndlp = (struct lpfc_nodelist *) mb->context2;
12682 if (ndlp) {
12683 lpfc_nlp_put(ndlp);
12684 mb->context2 = NULL;
12685 }
12680 } 12686 }
12681 list_del(&mb->list); 12687 list_del(&mb->list);
12682 mempool_free(mb, phba->mbox_mem_pool); 12688 mempool_free(mb, phba->mbox_mem_pool);
@@ -12686,6 +12692,15 @@ lpfc_cleanup_pending_mbox(struct lpfc_vport *vport)
12686 if ((mb->u.mb.mbxCommand == MBX_REG_LOGIN64) || 12692 if ((mb->u.mb.mbxCommand == MBX_REG_LOGIN64) ||
12687 (mb->u.mb.mbxCommand == MBX_REG_VPI)) 12693 (mb->u.mb.mbxCommand == MBX_REG_VPI))
12688 mb->mbox_cmpl = lpfc_sli_def_mbox_cmpl; 12694 mb->mbox_cmpl = lpfc_sli_def_mbox_cmpl;
12695 if (mb->u.mb.mbxCommand == MBX_REG_LOGIN64) {
12696 ndlp = (struct lpfc_nodelist *) mb->context2;
12697 if (ndlp) {
12698 lpfc_nlp_put(ndlp);
12699 mb->context2 = NULL;
12700 }
12701 /* Unregister the RPI when mailbox complete */
12702 mb->mbox_flag |= LPFC_MBX_IMED_UNREG;
12703 }
12689 } 12704 }
12690 spin_unlock_irq(&phba->hbalock); 12705 spin_unlock_irq(&phba->hbalock);
12691} 12706}