]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
scsi: ufs: core: Always initialize the UIC done completion
authorBart Van Assche <bvanassche@acm.org>
Thu, 12 Sep 2024 22:30:05 +0000 (15:30 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Fri, 4 Oct 2024 01:34:43 +0000 (21:34 -0400)
Simplify __ufshcd_send_uic_cmd() by always initializing the
uic_cmd::done completion. This is fine since the time required to
initialize a completion is small compared to the time required to
process an UIC command.

Reviewed-by: Peter Wang <peter.wang@mediatek.com>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Link: https://lore.kernel.org/r/20240912223019.3510966-5-bvanassche@acm.org
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/ufs/core/ufshcd.c

index 0c803b6f222193c68e1891e4a8ee20c3b40a8d87..d6528048c77f99d4e9be298433e40b8f1f5a7db9 100644 (file)
@@ -2551,13 +2551,11 @@ ufshcd_wait_for_uic_cmd(struct ufs_hba *hba, struct uic_command *uic_cmd)
  * __ufshcd_send_uic_cmd - Send UIC commands and retrieve the result
  * @hba: per adapter instance
  * @uic_cmd: UIC command
- * @completion: initialize the completion only if this is set to true
  *
  * Return: 0 only if success.
  */
 static int
-__ufshcd_send_uic_cmd(struct ufs_hba *hba, struct uic_command *uic_cmd,
-                     bool completion)
+__ufshcd_send_uic_cmd(struct ufs_hba *hba, struct uic_command *uic_cmd)
 {
        lockdep_assert_held(&hba->uic_cmd_mutex);
 
@@ -2567,8 +2565,7 @@ __ufshcd_send_uic_cmd(struct ufs_hba *hba, struct uic_command *uic_cmd,
                return -EIO;
        }
 
-       if (completion)
-               init_completion(&uic_cmd->done);
+       init_completion(&uic_cmd->done);
 
        uic_cmd->cmd_active = 1;
        ufshcd_dispatch_uic_cmd(hba, uic_cmd);
@@ -2594,7 +2591,7 @@ int ufshcd_send_uic_cmd(struct ufs_hba *hba, struct uic_command *uic_cmd)
        mutex_lock(&hba->uic_cmd_mutex);
        ufshcd_add_delay_before_dme_cmd(hba);
 
-       ret = __ufshcd_send_uic_cmd(hba, uic_cmd, true);
+       ret = __ufshcd_send_uic_cmd(hba, uic_cmd);
        if (!ret)
                ret = ufshcd_wait_for_uic_cmd(hba, uic_cmd);
 
@@ -4289,7 +4286,7 @@ static int ufshcd_uic_pwr_ctrl(struct ufs_hba *hba, struct uic_command *cmd)
                reenable_intr = true;
        }
        spin_unlock_irqrestore(hba->host->host_lock, flags);
-       ret = __ufshcd_send_uic_cmd(hba, cmd, false);
+       ret = __ufshcd_send_uic_cmd(hba, cmd);
        if (ret) {
                dev_err(hba->dev,
                        "pwr ctrl cmd 0x%x with mode 0x%x uic error %d\n",