Message ID | 1588128570-12917-1-git-send-email-Anson.Huang@nxp.com (mailing list archive) |
---|---|
State | New, archived |
Delegated to: | Daniel Lezcano |
Headers | show |
Series | [V3] thermal: imx: Add missing of_node_put() | expand |
Gentle ping... > Subject: [PATCH V3] thermal: imx: Add missing of_node_put() > > After finishing using cpu node got from of_get_cpu_node(), of_node_put() > needs to be called, the cpufreq policy also needs to be put unconditionally. > > Signed-off-by: Anson Huang <Anson.Huang@nxp.com> > --- > Changes since V2: > - call cpufreq_cpu_put() unconditionally after cooling register done. > --- > drivers/thermal/imx_thermal.c | 13 ++++++------- > 1 file changed, 6 insertions(+), 7 deletions(-) > > diff --git a/drivers/thermal/imx_thermal.c b/drivers/thermal/imx_thermal.c > index e761c9b..8764cb5 100644 > --- a/drivers/thermal/imx_thermal.c > +++ b/drivers/thermal/imx_thermal.c > @@ -649,7 +649,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) { > @@ -661,20 +661,19 @@ static int > imx_thermal_register_legacy_cooling(struct imx_thermal_data *data) > > if (!np || !of_find_property(np, "#cooling-cells", NULL)) { > data->cdev = cpufreq_cooling_register(data->policy); > - if (IS_ERR(data->cdev)) { > + if (IS_ERR(data->cdev)) > ret = PTR_ERR(data->cdev); > - cpufreq_cpu_put(data->policy); > - return ret; > - } > } > > - return 0; > + cpufreq_cpu_put(data->policy); > + of_node_put(np); > + > + return ret; > } > > static void imx_thermal_unregister_legacy_cooling(struct imx_thermal_data > *data) { > cpufreq_cooling_unregister(data->cdev); > - cpufreq_cpu_put(data->policy); > } > > #else > -- > 2.7.4
On 24/05/2020 05:26, Anson Huang wrote: > Gentle ping... It is applied, sorry for not letting you know. >> Subject: [PATCH V3] thermal: imx: Add missing of_node_put() >> >> After finishing using cpu node got from of_get_cpu_node(), of_node_put() >> needs to be called, the cpufreq policy also needs to be put unconditionally. >> >> Signed-off-by: Anson Huang <Anson.Huang@nxp.com> >> --- >> Changes since V2: >> - call cpufreq_cpu_put() unconditionally after cooling register done. >> --- >> drivers/thermal/imx_thermal.c | 13 ++++++------- >> 1 file changed, 6 insertions(+), 7 deletions(-) >> >> diff --git a/drivers/thermal/imx_thermal.c b/drivers/thermal/imx_thermal.c >> index e761c9b..8764cb5 100644 >> --- a/drivers/thermal/imx_thermal.c >> +++ b/drivers/thermal/imx_thermal.c >> @@ -649,7 +649,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) { >> @@ -661,20 +661,19 @@ static int >> imx_thermal_register_legacy_cooling(struct imx_thermal_data *data) >> >> if (!np || !of_find_property(np, "#cooling-cells", NULL)) { >> data->cdev = cpufreq_cooling_register(data->policy); >> - if (IS_ERR(data->cdev)) { >> + if (IS_ERR(data->cdev)) >> ret = PTR_ERR(data->cdev); >> - cpufreq_cpu_put(data->policy); >> - return ret; >> - } >> } >> >> - return 0; >> + cpufreq_cpu_put(data->policy); >> + of_node_put(np); >> + >> + return ret; >> } >> >> static void imx_thermal_unregister_legacy_cooling(struct imx_thermal_data >> *data) { >> cpufreq_cooling_unregister(data->cdev); >> - cpufreq_cpu_put(data->policy); >> } >> >> #else >> -- >> 2.7.4 >
diff --git a/drivers/thermal/imx_thermal.c b/drivers/thermal/imx_thermal.c index e761c9b..8764cb5 100644 --- a/drivers/thermal/imx_thermal.c +++ b/drivers/thermal/imx_thermal.c @@ -649,7 +649,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) { @@ -661,20 +661,19 @@ static int imx_thermal_register_legacy_cooling(struct imx_thermal_data *data) if (!np || !of_find_property(np, "#cooling-cells", NULL)) { data->cdev = cpufreq_cooling_register(data->policy); - if (IS_ERR(data->cdev)) { + if (IS_ERR(data->cdev)) ret = PTR_ERR(data->cdev); - cpufreq_cpu_put(data->policy); - return ret; - } } - return 0; + cpufreq_cpu_put(data->policy); + of_node_put(np); + + return ret; } static void imx_thermal_unregister_legacy_cooling(struct imx_thermal_data *data) { cpufreq_cooling_unregister(data->cdev); - cpufreq_cpu_put(data->policy); } #else
After finishing using cpu node got from of_get_cpu_node(), of_node_put() needs to be called, the cpufreq policy also needs to be put unconditionally. Signed-off-by: Anson Huang <Anson.Huang@nxp.com> --- Changes since V2: - call cpufreq_cpu_put() unconditionally after cooling register done. --- drivers/thermal/imx_thermal.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-)