summaryrefslogtreecommitdiff
path: root/drivers/thermal/imx_thermal.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/thermal/imx_thermal.c')
-rw-r--r--drivers/thermal/imx_thermal.c10
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)