diff options
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_sli.c')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_sli.c | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/drivers/scsi/lpfc/lpfc_sli.c b/drivers/scsi/lpfc/lpfc_sli.c index b8cf0a1b1382..ba698d5f31af 100644 --- a/drivers/scsi/lpfc/lpfc_sli.c +++ b/drivers/scsi/lpfc/lpfc_sli.c | |||
@@ -4491,8 +4491,10 @@ lpfc_sli4_hba_setup(struct lpfc_hba *phba) | |||
4491 | rc = -ENODEV; | 4491 | rc = -ENODEV; |
4492 | goto out_free_vpd; | 4492 | goto out_free_vpd; |
4493 | } | 4493 | } |
4494 | /* Temporary initialization of lpfc_fip_flag to non-fip */ | 4494 | if (phba->cfg_enable_fip) |
4495 | bf_set(lpfc_fip_flag, &phba->sli4_hba.sli4_flags, 0); | 4495 | bf_set(lpfc_fip_flag, &phba->sli4_hba.sli4_flags, 1); |
4496 | else | ||
4497 | bf_set(lpfc_fip_flag, &phba->sli4_hba.sli4_flags, 0); | ||
4496 | 4498 | ||
4497 | /* Set up all the queues to the device */ | 4499 | /* Set up all the queues to the device */ |
4498 | rc = lpfc_sli4_queue_setup(phba); | 4500 | rc = lpfc_sli4_queue_setup(phba); |
@@ -5856,18 +5858,13 @@ lpfc_sli4_iocb2wqe(struct lpfc_hba *phba, struct lpfc_iocbq *iocbq, | |||
5856 | 5858 | ||
5857 | fip = bf_get(lpfc_fip_flag, &phba->sli4_hba.sli4_flags); | 5859 | fip = bf_get(lpfc_fip_flag, &phba->sli4_hba.sli4_flags); |
5858 | /* The fcp commands will set command type */ | 5860 | /* The fcp commands will set command type */ |
5859 | if ((!(iocbq->iocb_flag & LPFC_IO_FCP)) && (!fip)) | 5861 | if (iocbq->iocb_flag & LPFC_IO_FCP) |
5860 | command_type = ELS_COMMAND_NON_FIP; | ||
5861 | else if (!(iocbq->iocb_flag & LPFC_IO_FCP)) | ||
5862 | command_type = ELS_COMMAND_FIP; | ||
5863 | else if (iocbq->iocb_flag & LPFC_IO_FCP) | ||
5864 | command_type = FCP_COMMAND; | 5862 | command_type = FCP_COMMAND; |
5865 | else { | 5863 | else if (fip && (iocbq->iocb_flag & LPFC_FIP_ELS)) |
5866 | lpfc_printf_log(phba, KERN_ERR, LOG_SLI, | 5864 | command_type = ELS_COMMAND_FIP; |
5867 | "2019 Invalid cmd 0x%x\n", | 5865 | else |
5868 | iocbq->iocb.ulpCommand); | 5866 | command_type = ELS_COMMAND_NON_FIP; |
5869 | return IOCB_ERROR; | 5867 | |
5870 | } | ||
5871 | /* Some of the fields are in the right position already */ | 5868 | /* Some of the fields are in the right position already */ |
5872 | memcpy(wqe, &iocbq->iocb, sizeof(union lpfc_wqe)); | 5869 | memcpy(wqe, &iocbq->iocb, sizeof(union lpfc_wqe)); |
5873 | abort_tag = (uint32_t) iocbq->iotag; | 5870 | abort_tag = (uint32_t) iocbq->iotag; |
@@ -11467,6 +11464,7 @@ lpfc_sli4_build_dflt_fcf_record(struct lpfc_hba *phba, | |||
11467 | bf_set(lpfc_fcf_record_fc_map_1, fcf_record, phba->fc_map[1]); | 11464 | bf_set(lpfc_fcf_record_fc_map_1, fcf_record, phba->fc_map[1]); |
11468 | bf_set(lpfc_fcf_record_fc_map_2, fcf_record, phba->fc_map[2]); | 11465 | bf_set(lpfc_fcf_record_fc_map_2, fcf_record, phba->fc_map[2]); |
11469 | bf_set(lpfc_fcf_record_fcf_valid, fcf_record, 1); | 11466 | bf_set(lpfc_fcf_record_fcf_valid, fcf_record, 1); |
11467 | bf_set(lpfc_fcf_record_fcf_avail, fcf_record, 1); | ||
11470 | bf_set(lpfc_fcf_record_fcf_index, fcf_record, fcf_index); | 11468 | bf_set(lpfc_fcf_record_fcf_index, fcf_record, fcf_index); |
11471 | bf_set(lpfc_fcf_record_mac_addr_prov, fcf_record, | 11469 | bf_set(lpfc_fcf_record_mac_addr_prov, fcf_record, |
11472 | LPFC_FCF_FPMA | LPFC_FCF_SPMA); | 11470 | LPFC_FCF_FPMA | LPFC_FCF_SPMA); |