[SCSI] lpfc 8.3.41: Fixed max value of lpfc_lun_queue_depth

Signed-off-by: James Smart <james.smart@emulex.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
This commit is contained in:
James Smart
2013-07-15 18:32:43 -04:00
committed by James Bottomley
parent 48a5a664d0
commit 572709e206
4 changed files with 44 additions and 13 deletions

View File

@@ -472,10 +472,22 @@ lpfc_config_port_post(struct lpfc_hba *phba)
lpfc_sli_read_link_ste(phba);
/* Reset the DFT_HBA_Q_DEPTH to the max xri */
if (phba->cfg_hba_queue_depth > (mb->un.varRdConfig.max_xri+1))
phba->cfg_hba_queue_depth =
(mb->un.varRdConfig.max_xri + 1) -
lpfc_sli4_get_els_iocb_cnt(phba);
i = (mb->un.varRdConfig.max_xri + 1);
if (phba->cfg_hba_queue_depth > i) {
lpfc_printf_log(phba, KERN_WARNING, LOG_INIT,
"3359 HBA queue depth changed from %d to %d\n",
phba->cfg_hba_queue_depth, i);
phba->cfg_hba_queue_depth = i;
}
/* Reset the DFT_LUN_Q_DEPTH to (max xri >> 3) */
i = (mb->un.varRdConfig.max_xri >> 3);
if (phba->pport->cfg_lun_queue_depth > i) {
lpfc_printf_log(phba, KERN_WARNING, LOG_INIT,
"3360 LUN queue depth changed from %d to %d\n",
phba->pport->cfg_lun_queue_depth, i);
phba->pport->cfg_lun_queue_depth = i;
}
phba->lmt = mb->un.varRdConfig.lmt;
@@ -6664,12 +6676,14 @@ lpfc_sli4_read_config(struct lpfc_hba *phba)
goto read_cfg_out;
/* Reset the DFT_HBA_Q_DEPTH to the max xri */
if (phba->cfg_hba_queue_depth >
(phba->sli4_hba.max_cfg_param.max_xri -
lpfc_sli4_get_els_iocb_cnt(phba)))
phba->cfg_hba_queue_depth =
phba->sli4_hba.max_cfg_param.max_xri -
lpfc_sli4_get_els_iocb_cnt(phba);
length = phba->sli4_hba.max_cfg_param.max_xri -
lpfc_sli4_get_els_iocb_cnt(phba);
if (phba->cfg_hba_queue_depth > length) {
lpfc_printf_log(phba, KERN_WARNING, LOG_INIT,
"3361 HBA queue depth changed from %d to %d\n",
phba->cfg_hba_queue_depth, length);
phba->cfg_hba_queue_depth = length;
}
if (bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf) !=
LPFC_SLI_INTF_IF_TYPE_2)