[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20141216005048.GA3802@dtor-ws>
Date: Mon, 15 Dec 2014 16:50:48 -0800
From: Dmitry Torokhov <dtor@...omium.org>
To: "Rafael J. Wysocki" <rjw@...ysocki.net>
Cc: Viresh Kumar <viresh.kumar@...aro.org>,
Shawn Guo <shawn.guo@...escale.com>,
Philipp Zabel <p.zabel@...gutronix.de>,
Anson Huang <b20788@...escale.com>,
John Tobias <john.tobias.ph@...il.com>,
linux-pm@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: [PATCH] cpufreq: imx6: prorect calls to dev_pm_opp_get_opp_count
with RCU lock
dev_pm_opp_get_opp_count() must be called with RCU lock held.
Signed-off-by: Dmitry Torokhov <dtor@...omium.org>
---
Not tested at all...
drivers/cpufreq/imx6q-cpufreq.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/cpufreq/imx6q-cpufreq.c b/drivers/cpufreq/imx6q-cpufreq.c
index 380a90d..851d4fd 100644
--- a/drivers/cpufreq/imx6q-cpufreq.c
+++ b/drivers/cpufreq/imx6q-cpufreq.c
@@ -200,7 +200,9 @@ static int imx6q_cpufreq_probe(struct platform_device *pdev)
* Just, incase the platform did not supply the OPP
* table, it will try to get it.
*/
+ rcu_read_lock();
num = dev_pm_opp_get_opp_count(cpu_dev);
+ rcu_read_unlock();
if (num < 0) {
ret = of_init_opp_table(cpu_dev);
if (ret < 0) {
@@ -211,7 +213,9 @@ static int imx6q_cpufreq_probe(struct platform_device *pdev)
/* Because we have added the OPPs here, we must free them */
free_opp = true;
+ rcu_read_lock();
num = dev_pm_opp_get_opp_count(cpu_dev);
+ rcu_read_unlock();
if (num < 0) {
ret = num;
dev_err(cpu_dev, "no OPP table is found: %d\n", ret);
--
2.2.0.rc0.207.ga3a616c
--
Dmitry
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists