aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/lpfc/lpfc_hbadisc.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_hbadisc.c')
-rw-r--r--drivers/scsi/lpfc/lpfc_hbadisc.c24
1 files changed, 15 insertions, 9 deletions
diff --git a/drivers/scsi/lpfc/lpfc_hbadisc.c b/drivers/scsi/lpfc/lpfc_hbadisc.c
index 343d87ba4df8..b507536dc5b5 100644
--- a/drivers/scsi/lpfc/lpfc_hbadisc.c
+++ b/drivers/scsi/lpfc/lpfc_hbadisc.c
@@ -1,7 +1,7 @@
1/******************************************************************* 1/*******************************************************************
2 * This file is part of the Emulex Linux Device Driver for * 2 * This file is part of the Emulex Linux Device Driver for *
3 * Fibre Channel Host Bus Adapters. * 3 * Fibre Channel Host Bus Adapters. *
4 * Copyright (C) 2004-2011 Emulex. All rights reserved. * 4 * Copyright (C) 2004-2012 Emulex. All rights reserved. *
5 * EMULEX and SLI are trademarks of Emulex. * 5 * EMULEX and SLI are trademarks of Emulex. *
6 * www.emulex.com * 6 * www.emulex.com *
7 * Portions Copyright (C) 2004-2005 Christoph Hellwig * 7 * Portions Copyright (C) 2004-2005 Christoph Hellwig *
@@ -2843,7 +2843,14 @@ lpfc_mbx_cmpl_reg_vfi(struct lpfc_hba *phba, LPFC_MBOXQ_t *mboxq)
2843 struct lpfc_vport *vport = mboxq->vport; 2843 struct lpfc_vport *vport = mboxq->vport;
2844 struct Scsi_Host *shost = lpfc_shost_from_vport(vport); 2844 struct Scsi_Host *shost = lpfc_shost_from_vport(vport);
2845 2845
2846 if (mboxq->u.mb.mbxStatus) { 2846 /*
2847 * VFI not supported for interface type 0, so ignore any mailbox
2848 * error (except VFI in use) and continue with the discovery.
2849 */
2850 if (mboxq->u.mb.mbxStatus &&
2851 (bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf) !=
2852 LPFC_SLI_INTF_IF_TYPE_0) &&
2853 mboxq->u.mb.mbxStatus != MBX_VFI_IN_USE) {
2847 lpfc_printf_vlog(vport, KERN_ERR, LOG_MBOX, 2854 lpfc_printf_vlog(vport, KERN_ERR, LOG_MBOX,
2848 "2018 REG_VFI mbxStatus error x%x " 2855 "2018 REG_VFI mbxStatus error x%x "
2849 "HBA state x%x\n", 2856 "HBA state x%x\n",
@@ -5673,14 +5680,13 @@ lpfc_fcf_inuse(struct lpfc_hba *phba)
5673 ret = 1; 5680 ret = 1;
5674 spin_unlock_irq(shost->host_lock); 5681 spin_unlock_irq(shost->host_lock);
5675 goto out; 5682 goto out;
5676 } else { 5683 } else if (ndlp->nlp_flag & NLP_RPI_REGISTERED) {
5684 ret = 1;
5677 lpfc_printf_log(phba, KERN_INFO, LOG_ELS, 5685 lpfc_printf_log(phba, KERN_INFO, LOG_ELS,
5678 "2624 RPI %x DID %x flg %x still " 5686 "2624 RPI %x DID %x flag %x "
5679 "logged in\n", 5687 "still logged in\n",
5680 ndlp->nlp_rpi, ndlp->nlp_DID, 5688 ndlp->nlp_rpi, ndlp->nlp_DID,
5681 ndlp->nlp_flag); 5689 ndlp->nlp_flag);
5682 if (ndlp->nlp_flag & NLP_RPI_REGISTERED)
5683 ret = 1;
5684 } 5690 }
5685 } 5691 }
5686 spin_unlock_irq(shost->host_lock); 5692 spin_unlock_irq(shost->host_lock);