diff options
author | Pavel Kubelun <be.dissent@gmail.com> | 2016-11-02 22:37:28 +0300 |
---|---|---|
committer | John Crispin <john@phrozen.org> | 2016-11-03 08:28:16 +0100 |
commit | 681f28990d7b44e218335968ebb4cfaca1349a77 (patch) | |
tree | b2e9d93775ceb215c0294eef17d5bdfe1b5a295a /target/linux/ipq806x/patches-4.4/174-cpufreq-dt-Add-missing-rcu_read_lock-for-find_device_opp.patch | |
parent | a154a3d8bec45339c5f4f20b9dc6987652c63e41 (diff) | |
download | upstream-681f28990d7b44e218335968ebb4cfaca1349a77.tar.gz upstream-681f28990d7b44e218335968ebb4cfaca1349a77.tar.bz2 upstream-681f28990d7b44e218335968ebb4cfaca1349a77.zip |
ipq806x: switch to generic cpufreq driver cpufreq-dt
This fixes ondemand frequency scaling and moves ipq806x onto upstream driver
Also switching to ondemand frequency scaling as it is fixed now
Signed-off-by: Pavel Kubelun <be.dissent@gmail.com>
Diffstat (limited to 'target/linux/ipq806x/patches-4.4/174-cpufreq-dt-Add-missing-rcu_read_lock-for-find_device_opp.patch')
-rw-r--r-- | target/linux/ipq806x/patches-4.4/174-cpufreq-dt-Add-missing-rcu_read_lock-for-find_device_opp.patch | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/target/linux/ipq806x/patches-4.4/174-cpufreq-dt-Add-missing-rcu_read_lock-for-find_device_opp.patch b/target/linux/ipq806x/patches-4.4/174-cpufreq-dt-Add-missing-rcu_read_lock-for-find_device_opp.patch new file mode 100644 index 0000000000..124272154f --- /dev/null +++ b/target/linux/ipq806x/patches-4.4/174-cpufreq-dt-Add-missing-rcu_read_lock-for-find_device_opp.patch @@ -0,0 +1,33 @@ +From dafae9c5b39e2871bfd8db0b4bad6e850e42ef49 Mon Sep 17 00:00:00 2001 +From: Georgi Djakov <georgi.djakov@linaro.org> +Date: Wed, 13 Jan 2016 15:10:25 +0200 +Subject: cpufreq-dt: Add missing rcu_read_lock() for find_device_opp() + +The function dev_pm_opp_get_notifier() must be called with held +rcu_read_lock. In order to keep the pointer valid, add rcu_read_lock(). + +Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org> +--- + drivers/cpufreq/cpufreq-dt.c | 3 +++ + 1 file changed, 3 insertions(+) + +--- a/drivers/cpufreq/cpufreq-dt.c ++++ b/drivers/cpufreq/cpufreq-dt.c +@@ -359,14 +359,17 @@ static int cpufreq_init(struct cpufreq_p + + mutex_init(&priv->lock); + ++ rcu_read_lock(); + opp_srcu_head = dev_pm_opp_get_notifier(cpu_dev); + if (IS_ERR(opp_srcu_head)) { + ret = PTR_ERR(opp_srcu_head); ++ rcu_read_unlock(); + goto out_free_priv; + } + + priv->opp_nb.notifier_call = opp_notifier; + ret = srcu_notifier_chain_register(opp_srcu_head, &priv->opp_nb); ++ rcu_read_unlock(); + if (ret) + goto out_free_priv; + |