From 681f28990d7b44e218335968ebb4cfaca1349a77 Mon Sep 17 00:00:00 2001 From: Pavel Kubelun Date: Wed, 2 Nov 2016 22:37:28 +0300 Subject: 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 --- ...missing-rcu_read_lock-for-find_device_opp.patch | 33 ++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 target/linux/ipq806x/patches-4.4/174-cpufreq-dt-Add-missing-rcu_read_lock-for-find_device_opp.patch (limited to 'target/linux/ipq806x/patches-4.4/174-cpufreq-dt-Add-missing-rcu_read_lock-for-find_device_opp.patch') 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 +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 +--- + 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; + -- cgit v1.2.3