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: d2f31f1da54f "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…
x
Reference in New Issue
Block a user