]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
cpufreq-dt: Add missing rcu_read_lock() for find_device_opp()
authorGeorgi Djakov <georgi.djakov@linaro.org>
Wed, 13 Jan 2016 13:10:25 +0000 (15:10 +0200)
committerSrinivas Kandagatla <srinivas.kandagatla@linaro.org>
Thu, 14 Jan 2016 16:05:16 +0000 (16:05 +0000)
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

index 5b422a51f6da149b613799df6ce90c7f76c7cc4d..e8c4cb6be2b550c9d7c82a50b4b7e75c0f841882 100644 (file)
@@ -359,14 +359,17 @@ static int cpufreq_init(struct cpufreq_policy *policy)
 
        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;