Commit f6770e7d authored by James Smart's avatar James Smart Committed by Martin K. Petersen

scsi: lpfc: Clean up hba max_lun_queue_depth checks

The current code does some odd +1 over maximum xri count checks and
requires that the lun_queue_count can't be bigger than maximum xri count
divided by 8. These items are bogus.

Clean the code up to cap lun_queue_count to maximum xri count.

Link: https://lore.kernel.org/r/20200128002312.16346-10-jsmart2021@gmail.comSigned-off-by: default avatarDick Kennedy <dick.kennedy@broadcom.com>
Signed-off-by: default avatarJames Smart <jsmart2021@gmail.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 6cde2e3e
...@@ -3869,9 +3869,6 @@ LPFC_VPORT_ATTR_R(enable_da_id, 1, 0, 1, ...@@ -3869,9 +3869,6 @@ LPFC_VPORT_ATTR_R(enable_da_id, 1, 0, 1,
/* /*
# lun_queue_depth: This parameter is used to limit the number of outstanding # lun_queue_depth: This parameter is used to limit the number of outstanding
# commands per FCP LUN. Value range is [1,512]. Default value is 30. # commands per FCP LUN. Value range is [1,512]. Default value is 30.
# If this parameter value is greater than 1/8th the maximum number of exchanges
# supported by the HBA port, then the lun queue depth will be reduced to
# 1/8th the maximum number of exchanges.
*/ */
LPFC_VPORT_ATTR_R(lun_queue_depth, 30, 1, 512, LPFC_VPORT_ATTR_R(lun_queue_depth, 30, 1, 512,
"Max number of FCP commands we can queue to a specific LUN"); "Max number of FCP commands we can queue to a specific LUN");
......
...@@ -512,21 +512,12 @@ lpfc_config_port_post(struct lpfc_hba *phba) ...@@ -512,21 +512,12 @@ lpfc_config_port_post(struct lpfc_hba *phba)
lpfc_sli_read_link_ste(phba); lpfc_sli_read_link_ste(phba);
/* Reset the DFT_HBA_Q_DEPTH to the max xri */ /* Reset the DFT_HBA_Q_DEPTH to the max xri */
i = (mb->un.varRdConfig.max_xri + 1); if (phba->cfg_hba_queue_depth > mb->un.varRdConfig.max_xri) {
if (phba->cfg_hba_queue_depth > i) {
lpfc_printf_log(phba, KERN_WARNING, LOG_INIT, lpfc_printf_log(phba, KERN_WARNING, LOG_INIT,
"3359 HBA queue depth changed from %d to %d\n", "3359 HBA queue depth changed from %d to %d\n",
phba->cfg_hba_queue_depth, i); phba->cfg_hba_queue_depth,
phba->cfg_hba_queue_depth = i; mb->un.varRdConfig.max_xri);
} phba->cfg_hba_queue_depth = mb->un.varRdConfig.max_xri;
/* 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; phba->lmt = mb->un.varRdConfig.lmt;
......
...@@ -7371,15 +7371,6 @@ lpfc_sli4_hba_setup(struct lpfc_hba *phba) ...@@ -7371,15 +7371,6 @@ lpfc_sli4_hba_setup(struct lpfc_hba *phba)
phba->vpd.rev.fcphHigh, phba->vpd.rev.fcphLow, phba->vpd.rev.fcphHigh, phba->vpd.rev.fcphLow,
phba->vpd.rev.feaLevelHigh, phba->vpd.rev.feaLevelLow); phba->vpd.rev.feaLevelHigh, phba->vpd.rev.feaLevelLow);
/* Reset the DFT_LUN_Q_DEPTH to (max xri >> 3) */
rc = (phba->sli4_hba.max_cfg_param.max_xri >> 3);
if (phba->pport->cfg_lun_queue_depth > rc) {
lpfc_printf_log(phba, KERN_WARNING, LOG_INIT,
"3362 LUN queue depth changed from %d to %d\n",
phba->pport->cfg_lun_queue_depth, rc);
phba->pport->cfg_lun_queue_depth = rc;
}
if (bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf) == if (bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf) ==
LPFC_SLI_INTF_IF_TYPE_0) { LPFC_SLI_INTF_IF_TYPE_0) {
lpfc_set_features(phba, mboxq, LPFC_SET_UE_RECOVERY); lpfc_set_features(phba, mboxq, LPFC_SET_UE_RECOVERY);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment