]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
scsi: ufs: core: Initialize hba->reserved_slot earlier
authorBart Van Assche <bvanassche@acm.org>
Mon, 8 Jul 2024 21:16:00 +0000 (14:16 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Thu, 11 Jul 2024 02:19:04 +0000 (22:19 -0400)
Move the hba->reserved_slot and the host->can_queue assignments from
ufshcd_config_mcq() into ufshcd_alloc_mcq(). The advantages of this change
are as follows:

 - It becomes easier to verify that these two parameters are updated if
   hba->nutrs is updated.

 - It prevents unnecessary assignments to these two parameters. While
   ufshcd_config_mcq() is called during host reset, ufshcd_alloc_mcq() is
   not.

Cc: Can Guo <quic_cang@quicinc.com>
Reviewed-by: Peter Wang <peter.wang@mediatek.com>
Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Link: https://lore.kernel.org/r/20240708211716.2827751-6-bvanassche@acm.org
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/ufs/core/ufshcd.c

index bfcfbfb648d17026ee5cbcec6b14d74807c9468c..aed6b7acfcc967831aa7247314ae80a3749d5fd0 100644 (file)
@@ -8678,6 +8678,9 @@ static int ufshcd_alloc_mcq(struct ufs_hba *hba)
        if (ret)
                goto err;
 
+       hba->host->can_queue = hba->nutrs - UFSHCD_NUM_RESERVED;
+       hba->reserved_slot = hba->nutrs - UFSHCD_NUM_RESERVED;
+
        return 0;
 err:
        hba->nutrs = old_nutrs;
@@ -8699,9 +8702,6 @@ static void ufshcd_config_mcq(struct ufs_hba *hba)
        ufshcd_mcq_make_queues_operational(hba);
        ufshcd_mcq_config_mac(hba, hba->nutrs);
 
-       hba->host->can_queue = hba->nutrs - UFSHCD_NUM_RESERVED;
-       hba->reserved_slot = hba->nutrs - UFSHCD_NUM_RESERVED;
-
        ufshcd_mcq_enable(hba);
        hba->mcq_enabled = true;