scsi: ufs: Use DECLARE_COMPLETION_ONSTACK() where appropriate
authorBart Van Assche <bvanassche@acm.org>
Thu, 22 Jul 2021 03:34:26 +0000 (20:34 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 3 Aug 2021 01:43:57 +0000 (21:43 -0400)
From Documentation/scheduler/completion.rst: "When a completion is declared
as a local variable within a function, then the initialization should
always use DECLARE_COMPLETION_ONSTACK() explicitly, not just to make
lockdep happy, but also to make it clear that limited scope had been
considered and is intentional."

Link: https://lore.kernel.org/r/20210722033439.26550-6-bvanassche@acm.org
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Stanley Chu <stanley.chu@mediatek.com>
Cc: Can Guo <cang@codeaurora.org>
Cc: Asutosh Das <asutoshd@codeaurora.org>
Cc: Avri Altman <avri.altman@wdc.com>
Reviewed-by: Avri Altman <avri.altman@wdc.com>
Reviewed-by: Bean Huo <beanhuo@micron.com>
Reviewed-by: Daejun Park <daejun7.park@samsung.com>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/ufs/ufshcd.c

index e077345..77d705e 100644 (file)
@@ -2956,11 +2956,11 @@ static int ufshcd_exec_dev_cmd(struct ufs_hba *hba,
                enum dev_cmd_type cmd_type, int timeout)
 {
        struct request_queue *q = hba->cmd_queue;
+       DECLARE_COMPLETION_ONSTACK(wait);
        struct request *req;
        struct ufshcd_lrb *lrbp;
        int err;
        int tag;
-       struct completion wait;
 
        down_read(&hba->clk_scaling_lock);
 
@@ -2985,7 +2985,6 @@ static int ufshcd_exec_dev_cmd(struct ufs_hba *hba,
                goto out;
        }
 
-       init_completion(&wait);
        lrbp = &hba->lrb[tag];
        WARN_ON(lrbp->cmd);
        err = ufshcd_compose_dev_cmd(hba, lrbp, cmd_type, tag);
@@ -3992,14 +3991,13 @@ EXPORT_SYMBOL_GPL(ufshcd_dme_get_attr);
  */
 static int ufshcd_uic_pwr_ctrl(struct ufs_hba *hba, struct uic_command *cmd)
 {
-       struct completion uic_async_done;
+       DECLARE_COMPLETION_ONSTACK(uic_async_done);
        unsigned long flags;
        u8 status;
        int ret;
        bool reenable_intr = false;
 
        mutex_lock(&hba->uic_cmd_mutex);
-       init_completion(&uic_async_done);
        ufshcd_add_delay_before_dme_cmd(hba);
 
        spin_lock_irqsave(hba->host->host_lock, flags);
@@ -6700,11 +6698,11 @@ static int ufshcd_issue_devman_upiu_cmd(struct ufs_hba *hba,
                                        enum query_opcode desc_op)
 {
        struct request_queue *q = hba->cmd_queue;
+       DECLARE_COMPLETION_ONSTACK(wait);
        struct request *req;
        struct ufshcd_lrb *lrbp;
        int err = 0;
        int tag;
-       struct completion wait;
        u8 upiu_flags;
 
        down_read(&hba->clk_scaling_lock);
@@ -6722,7 +6720,6 @@ static int ufshcd_issue_devman_upiu_cmd(struct ufs_hba *hba,
                goto out;
        }
 
-       init_completion(&wait);
        lrbp = &hba->lrb[tag];
        WARN_ON(lrbp->cmd);
        lrbp->cmd = NULL;