ipq806x: switch to generic cpufreq driver cpufreq-dt
[openwrt/staging/wigyori.git] / target / linux / ipq806x / patches-4.4 / 174-cpufreq-dt-Add-missing-rcu_read_lock-for-find_device_opp.patch
1 From dafae9c5b39e2871bfd8db0b4bad6e850e42ef49 Mon Sep 17 00:00:00 2001
2 From: Georgi Djakov <georgi.djakov@linaro.org>
3 Date: Wed, 13 Jan 2016 15:10:25 +0200
4 Subject: cpufreq-dt: Add missing rcu_read_lock() for find_device_opp()
5
6 The function dev_pm_opp_get_notifier() must be called with held
7 rcu_read_lock. In order to keep the pointer valid, add rcu_read_lock().
8
9 Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
10 ---
11 drivers/cpufreq/cpufreq-dt.c | 3 +++
12 1 file changed, 3 insertions(+)
13
14 --- a/drivers/cpufreq/cpufreq-dt.c
15 +++ b/drivers/cpufreq/cpufreq-dt.c
16 @@ -359,14 +359,17 @@ static int cpufreq_init(struct cpufreq_p
17
18 mutex_init(&priv->lock);
19
20 + rcu_read_lock();
21 opp_srcu_head = dev_pm_opp_get_notifier(cpu_dev);
22 if (IS_ERR(opp_srcu_head)) {
23 ret = PTR_ERR(opp_srcu_head);
24 + rcu_read_unlock();
25 goto out_free_priv;
26 }
27
28 priv->opp_nb.notifier_call = opp_notifier;
29 ret = srcu_notifier_chain_register(opp_srcu_head, &priv->opp_nb);
30 + rcu_read_unlock();
31 if (ret)
32 goto out_free_priv;
33