diff options
Diffstat (limited to 'drivers/thermal/imx_thermal.c')
-rw-r--r-- | drivers/thermal/imx_thermal.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/thermal/imx_thermal.c b/drivers/thermal/imx_thermal.c index a4dd190b2a38..2f648ef41cc2 100644 --- a/drivers/thermal/imx_thermal.c +++ b/drivers/thermal/imx_thermal.c @@ -683,7 +683,7 @@ MODULE_DEVICE_TABLE(of, of_imx_thermal_match); static int imx_thermal_register_legacy_cooling(struct imx_thermal_data *data) { struct device_node *np; - int ret; + int ret = 0; data->policy = cpufreq_cpu_get(0); if (!data->policy) { @@ -698,7 +698,7 @@ static int imx_thermal_register_legacy_cooling(struct imx_thermal_data *data) if (IS_ERR(data->cdev[0])) { ret = PTR_ERR(data->cdev[0]); cpufreq_cpu_put(data->policy); - return ret; + goto put_node; } } @@ -710,10 +710,12 @@ static int imx_thermal_register_legacy_cooling(struct imx_thermal_data *data) ret); cpufreq_cooling_unregister(data->cdev[0]); } - return ret; } - return 0; +put_node: + of_node_put(np); + + return ret; } static void imx_thermal_unregister_legacy_cooling(struct imx_thermal_data *data) |