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

Commit f44d188a authored by Nishanth Menon's avatar Nishanth Menon Committed by Rafael J. Wysocki
Browse files

cpufreq: OMAP: use RCU locks around usage of OPP



OPP pointer is RCU protected, hence after finding it, de-reference
also should be protected with the same RCU context else the OPP
pointer may become invalid.

Reported-by: default avatarAlexander Holler <holler@ahsoftware.de>
Tested-by: default avatarAlexander Holler <holler@ahsoftware.de>
Acked-by: default avatarAlexander Holler <holler@ahsoftware.de>
Signed-off-by: default avatarNishanth Menon <nm@ti.com>
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent 25216865
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -110,13 +110,16 @@ static int omap_target(struct cpufreq_policy *policy,
	freq = ret;

	if (mpu_reg) {
		rcu_read_lock();
		opp = opp_find_freq_ceil(mpu_dev, &freq);
		if (IS_ERR(opp)) {
			rcu_read_unlock();
			dev_err(mpu_dev, "%s: unable to find MPU OPP for %d\n",
				__func__, freqs.new);
			return -EINVAL;
		}
		volt = opp_get_voltage(opp);
		rcu_read_unlock();
		tol = volt * OPP_TOLERANCE / 100;
		volt_old = regulator_get_voltage(mpu_reg);
	}