scsi: lpfc: Clean up hba max_lun_queue_depth checks
authorJames Smart <jsmart2021@gmail.com>
Tue, 28 Jan 2020 00:23:09 +0000 (16:23 -0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 11 Feb 2020 03:46:56 +0000 (22:46 -0500)
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.com
Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com>
Signed-off-by: James Smart <jsmart2021@gmail.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/lpfc/lpfc_attr.c
drivers/scsi/lpfc/lpfc_init.c
drivers/scsi/lpfc/lpfc_sli.c

index 46f56f30f77ef3d14b2cfb466cf1a5bc5fda73a0..48b6c98ec92276ade1595b9bbe5af199b786361f 100644 (file)
@@ -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
 # 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,
                  "Max number of FCP commands we can queue to a specific LUN");
index 9a6191818a238c595fd766292f0001a1d68933c7..6d571e0b74f0f8ed7faad507fdf3af9adbaa166d 100644 (file)
@@ -512,21 +512,12 @@ lpfc_config_port_post(struct lpfc_hba *phba)
        lpfc_sli_read_link_ste(phba);
 
        /* Reset the DFT_HBA_Q_DEPTH to the max xri  */
-       i = (mb->un.varRdConfig.max_xri + 1);
-       if (phba->cfg_hba_queue_depth > i) {
+       if (phba->cfg_hba_queue_depth > mb->un.varRdConfig.max_xri) {
                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->cfg_hba_queue_depth,
+                               mb->un.varRdConfig.max_xri);
+               phba->cfg_hba_queue_depth = mb->un.varRdConfig.max_xri;
        }
 
        phba->lmt = mb->un.varRdConfig.lmt;
index ab6f58bc80a48db325ee2f45009105befb82a56c..a5fd043e9be46da4280f92300708740099ee9eb3 100644 (file)
@@ -7371,15 +7371,6 @@ lpfc_sli4_hba_setup(struct lpfc_hba *phba)
                        phba->vpd.rev.fcphHigh, phba->vpd.rev.fcphLow,
                        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) ==
            LPFC_SLI_INTF_IF_TYPE_0) {
                lpfc_set_features(phba, mboxq, LPFC_SET_UE_RECOVERY);