From: Vaios Papadimitriou Date: Tue, 8 May 2012 22:01:28 +0000 (-0500) Subject: Fix bug with mailbox handling of REG_VFI and cable pull (CR 127762) X-Git-Tag: v2.6.39-400.9.0~423^2~123^2~1 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=c4b270310a03710ff0ff9f945ef7af6c2d079b42;p=users%2Fjedix%2Flinux-maple.git Fix bug with mailbox handling of REG_VFI and cable pull (CR 127762) Additional checks were missing for interface type and mailbox status that caused the vport state to be set as failed. commit id: f5eca9be1424ffa76b36dce4a821c051b37a8ab9 Signed-off-by: Maxim Uvarov --- diff --git a/drivers/scsi/lpfc/lpfc_hbadisc.c b/drivers/scsi/lpfc/lpfc_hbadisc.c index e6daaa6b06ef6..ac31b6e89420e 100644 --- a/drivers/scsi/lpfc/lpfc_hbadisc.c +++ b/drivers/scsi/lpfc/lpfc_hbadisc.c @@ -2843,7 +2843,14 @@ lpfc_mbx_cmpl_reg_vfi(struct lpfc_hba *phba, LPFC_MBOXQ_t *mboxq) struct lpfc_vport *vport = mboxq->vport; struct Scsi_Host *shost = lpfc_shost_from_vport(vport); - if (mboxq->u.mb.mbxStatus) { + /* + * VFI not supported for interface type 0, so ignore any mailbox + * error (except VFI in use) and continue with the discovery. + */ + if (mboxq->u.mb.mbxStatus && + (bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf) != + LPFC_SLI_INTF_IF_TYPE_0) && + mboxq->u.mb.mbxStatus != MBX_VFI_IN_USE) { lpfc_printf_vlog(vport, KERN_ERR, LOG_MBOX, "2018 REG_VFI mbxStatus error x%x " "HBA state x%x\n",