diff options
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_sli.c')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_sli.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/scsi/lpfc/lpfc_sli.c b/drivers/scsi/lpfc/lpfc_sli.c index 174a1b0d005d..a0f973e7acb3 100644 --- a/drivers/scsi/lpfc/lpfc_sli.c +++ b/drivers/scsi/lpfc/lpfc_sli.c | |||
@@ -11536,6 +11536,7 @@ lpfc_sli4_read_fcf_record(struct lpfc_hba *phba, uint16_t fcf_index) | |||
11536 | uint32_t alloc_len, req_len; | 11536 | uint32_t alloc_len, req_len; |
11537 | struct lpfc_mbx_read_fcf_tbl *read_fcf; | 11537 | struct lpfc_mbx_read_fcf_tbl *read_fcf; |
11538 | 11538 | ||
11539 | phba->fcoe_eventtag_at_fcf_scan = phba->fcoe_eventtag; | ||
11539 | mboxq = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); | 11540 | mboxq = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); |
11540 | if (!mboxq) { | 11541 | if (!mboxq) { |
11541 | lpfc_printf_log(phba, KERN_ERR, LOG_INIT, | 11542 | lpfc_printf_log(phba, KERN_ERR, LOG_INIT, |
@@ -11587,8 +11588,12 @@ lpfc_sli4_read_fcf_record(struct lpfc_hba *phba, uint16_t fcf_index) | |||
11587 | if (rc == MBX_NOT_FINISHED) { | 11588 | if (rc == MBX_NOT_FINISHED) { |
11588 | lpfc_sli4_mbox_cmd_free(phba, mboxq); | 11589 | lpfc_sli4_mbox_cmd_free(phba, mboxq); |
11589 | error = -EIO; | 11590 | error = -EIO; |
11590 | } else | 11591 | } else { |
11592 | spin_lock_irq(&phba->hbalock); | ||
11593 | phba->hba_flag |= FCF_DISC_INPROGRESS; | ||
11594 | spin_unlock_irq(&phba->hbalock); | ||
11591 | error = 0; | 11595 | error = 0; |
11596 | } | ||
11592 | return error; | 11597 | return error; |
11593 | } | 11598 | } |
11594 | 11599 | ||