|
@@ -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)
|