From: Amit Daniel Kachhap Date: Sun, 21 Apr 2013 22:24:37 +0000 (+0200) Subject: cpufreq: exynos5440: Protect OPP search calls with RCU lock X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=70eb0855b2f8fcf61f9f47626b9fa70e7b45ab06;p=openwrt%2Fstaging%2Fblogic.git cpufreq: exynos5440: Protect OPP search calls with RCU lock As per the OPP library documentation(Documentation/power/opp.txt) all OPP find/get calls should be protected by RCU locks. Signed-off-by: Amit Daniel Kachhap Signed-off-by: Rafael J. Wysocki --- diff --git a/drivers/cpufreq/exynos5440-cpufreq.c b/drivers/cpufreq/exynos5440-cpufreq.c index ead7ed43e238..0c74018eda47 100644 --- a/drivers/cpufreq/exynos5440-cpufreq.c +++ b/drivers/cpufreq/exynos5440-cpufreq.c @@ -120,11 +120,13 @@ static int init_div_table(void) int i = 0; struct opp *opp; + rcu_read_lock(); for (i = 0; freq_tbl[i].frequency != CPUFREQ_TABLE_END; i++) { opp = opp_find_freq_exact(dvfs_info->dev, freq_tbl[i].frequency * 1000, true); if (IS_ERR(opp)) { + rcu_read_unlock(); dev_err(dvfs_info->dev, "failed to find valid OPP for %u KHZ\n", freq_tbl[i].frequency); @@ -159,6 +161,7 @@ static int init_div_table(void) __raw_writel(tmp, dvfs_info->base + XMU_PMU_P0_7 + 4 * i); } + rcu_read_unlock(); return 0; }