Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
[linux-2.6-block.git] / drivers / ufs / core / ufshcd.c
index 21429eec1b82c78c88348b232ae4e80fd2a2c78a..e30fd125988d7a8ca521d6fb30e97c671f269732 100644 (file)
@@ -1514,7 +1514,7 @@ static int ufshcd_devfreq_target(struct device *dev,
        int ret = 0;
        struct ufs_hba *hba = dev_get_drvdata(dev);
        ktime_t start;
-       bool scale_up, sched_clk_scaling_suspend_work = false;
+       bool scale_up = false, sched_clk_scaling_suspend_work = false;
        struct list_head *clk_list = &hba->clk_list_head;
        struct ufs_clk_info *clki;
        unsigned long irq_flags;
@@ -3102,7 +3102,7 @@ bool ufshcd_cmd_inflight(struct scsi_cmnd *cmd)
  */
 static int ufshcd_clear_cmd(struct ufs_hba *hba, u32 task_tag)
 {
-       u32 mask = 1U << task_tag;
+       u32 mask;
        unsigned long flags;
        int err;
 
@@ -3120,6 +3120,8 @@ static int ufshcd_clear_cmd(struct ufs_hba *hba, u32 task_tag)
                return 0;
        }
 
+       mask = 1U << task_tag;
+
        /* clear outstanding transaction before retry */
        spin_lock_irqsave(hba->host->host_lock, flags);
        ufshcd_utrl_clear(hba, mask);
@@ -6394,7 +6396,6 @@ static void ufshcd_err_handling_prepare(struct ufs_hba *hba)
                ufshcd_hold(hba);
                if (!ufshcd_is_clkgating_allowed(hba))
                        ufshcd_setup_clocks(hba, true);
-               ufshcd_release(hba);
                pm_op = hba->is_sys_suspended ? UFS_SYSTEM_PM : UFS_RUNTIME_PM;
                ufshcd_vops_resume(hba, pm_op);
        } else {
@@ -10643,7 +10644,7 @@ int ufshcd_init(struct ufs_hba *hba, void __iomem *mmio_base, unsigned int irq)
        err = blk_mq_alloc_tag_set(&hba->tmf_tag_set);
        if (err < 0)
                goto out_remove_scsi_host;
-       hba->tmf_queue = blk_mq_init_queue(&hba->tmf_tag_set);
+       hba->tmf_queue = blk_mq_alloc_queue(&hba->tmf_tag_set, NULL, NULL);
        if (IS_ERR(hba->tmf_queue)) {
                err = PTR_ERR(hba->tmf_queue);
                goto free_tmf_tag_set;