Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6eae9c61 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "scsi: ufs: fix locking in __ufshcd_pm_qos_hold"

parents e8eea729 5cdf5793
Loading
Loading
Loading
Loading
+3 −13
Original line number Diff line number Diff line
@@ -1598,14 +1598,15 @@ static void ufshcd_exit_hibern8_on_idle(struct ufs_hba *hba)
#ifdef CONFIG_SMP

/* Host lock is assumed to be held by caller */
static int __ufshcd_pm_qos_hold(struct ufs_hba *hba, bool async)
static int ufshcd_pm_qos_hold(struct ufs_hba *hba, bool async)
{
	int ret = 0;
	unsigned long flags;

	if (!hba->pm_qos.cpu_dma_latency_us)
		goto out;
		return 0;

	spin_lock_irqsave(hba->host->host_lock, flags);
	hba->pm_qos.active_reqs++;
	if (hba->pm_qos.is_suspended)
		goto out;
@@ -1641,18 +1642,7 @@ start:
		break;
	}
out:
	return ret;
}

static int ufshcd_pm_qos_hold(struct ufs_hba *hba, bool async)
{
	unsigned long flags;
	int ret;

	spin_lock_irqsave(hba->host->host_lock, flags);
	ret = __ufshcd_pm_qos_hold(hba, async);
	spin_unlock_irqrestore(hba->host->host_lock, flags);

	return ret;
}