]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.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)
committerKleber Sacilotto de Souza <kleber.souza@canonical.com>
Mon, 14 Aug 2017 10:51:34 +0000 (12:51 +0200)
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;