diff options
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_hbadisc.c')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_hbadisc.c | 24 |
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); |