cpufreq: cpufreq-dt: fix potential double put of cpu OF node
If cpufreq_generic_init() fails we jump into the resource
cleanup path which contains a of_node_put() call. Another
instance of this has already been called at that time
resulting a double decrement of the refcount.
Fix this by calling of_node_put() only after we are sure
that nothing has gone wrong.
Fixes: d2f31f1da5
"cpufreq: cpu0: Move per-cluster initialization code to ->init()"
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
parent
bbcf071969
commit
f9739d2705
|
@ -259,7 +259,6 @@ static int cpufreq_init(struct cpufreq_policy *policy)
|
|||
else
|
||||
priv->cdev = cdev;
|
||||
}
|
||||
of_node_put(np);
|
||||
|
||||
priv->cpu_dev = cpu_dev;
|
||||
priv->cpu_reg = cpu_reg;
|
||||
|
@ -270,6 +269,8 @@ static int cpufreq_init(struct cpufreq_policy *policy)
|
|||
if (ret)
|
||||
goto out_cooling_unregister;
|
||||
|
||||
of_node_put(np);
|
||||
|
||||
return 0;
|
||||
|
||||
out_cooling_unregister:
|
||||
|
|
Loading…
Reference in New Issue