Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1210615 > unrolled thread
| Started by | Vaishali Thakkar <vthakkar1994@gmail.com> |
|---|---|
| First post | 2015-08-20 18:20 +0200 |
| Last post | 2015-08-27 11:10 +0200 |
| Articles | 7 — 3 participants |
Back to article view | Back to linux.kernel
[PATCH v2] thermal: cpu_cooling: Remove usage of devm functions Vaishali Thakkar <vthakkar1994@gmail.com> - 2015-08-20 18:20 +0200
Re: [PATCH v2] thermal: cpu_cooling: Remove usage of devm functions Javi Merino <javi.merino@arm.com> - 2015-08-26 14:50 +0200
Re: [PATCH v2] thermal: cpu_cooling: Remove usage of devm functions Viresh Kumar <viresh.kumar@linaro.org> - 2015-08-26 15:00 +0200
Re: [PATCH v2] thermal: cpu_cooling: Remove usage of devm functions Javi Merino <javi.merino@arm.com> - 2015-08-26 15:10 +0200
Re: [PATCH v2] thermal: cpu_cooling: Remove usage of devm functions Viresh Kumar <viresh.kumar@linaro.org> - 2015-08-26 15:20 +0200
Re: [PATCH v2] thermal: cpu_cooling: Remove usage of devm functions Vaishali Thakkar <vthakkar1994@gmail.com> - 2015-08-27 03:40 +0200
Re: [PATCH v2] thermal: cpu_cooling: Remove usage of devm functions Javi Merino <javi.merino@arm.com> - 2015-08-27 11:10 +0200
| From | Vaishali Thakkar <vthakkar1994@gmail.com> |
|---|---|
| Date | 2015-08-20 18:20 +0200 |
| Subject | [PATCH v2] thermal: cpu_cooling: Remove usage of devm functions |
| Message-ID | <pZAJk-1B8-9@gated-at.bofh.it> |
In the function cpufreq_get_requested_power, the memory allocated
for load_cpu is live within the function only. And after the
allocation it is immediately freed with devm_kfree. There is no
need to allocate memory for load_cpu with devm function so replace
devm_kcalloc with kcalloc and devm_kfree with kfree.
Signed-off-by: Vaishali Thakkar <vthakkar1994@gmail.com>
---
Changes since v1:
- Introduce new label based on Viresh Kumar's suggestion
---
drivers/thermal/cpu_cooling.c | 20 +++++++++-----------
1 file changed, 9 insertions(+), 11 deletions(-)
diff --git a/drivers/thermal/cpu_cooling.c b/drivers/thermal/cpu_cooling.c
index 620dcd4..7027923 100644
--- a/drivers/thermal/cpu_cooling.c
+++ b/drivers/thermal/cpu_cooling.c
@@ -584,8 +584,7 @@ static int cpufreq_get_requested_power(struct thermal_cooling_device *cdev,
if (trace_thermal_power_cpu_get_power_enabled()) {
u32 ncpus = cpumask_weight(&cpufreq_device->allowed_cpus);
- load_cpu = devm_kcalloc(&cdev->device, ncpus, sizeof(*load_cpu),
- GFP_KERNEL);
+ load_cpu = kcalloc(ncpus, sizeof(*load_cpu), GFP_KERNEL);
}
for_each_cpu(cpu, &cpufreq_device->allowed_cpus) {
@@ -607,22 +606,21 @@ static int cpufreq_get_requested_power(struct thermal_cooling_device *cdev,
dynamic_power = get_dynamic_power(cpufreq_device, freq);
ret = get_static_power(cpufreq_device, tz, freq, &static_power);
- if (ret) {
- if (load_cpu)
- devm_kfree(&cdev->device, load_cpu);
- return ret;
- }
+ if (ret)
+ goto free;
- if (load_cpu) {
+ if (load_cpu)
trace_thermal_power_cpu_get_power(
&cpufreq_device->allowed_cpus,
freq, load_cpu, i, dynamic_power, static_power);
- devm_kfree(&cdev->device, load_cpu);
- }
-
*power = static_power + dynamic_power;
return 0;
+
+free:
+ kfree(load_cpu);
+
+ return ret;
}
/**
--
1.9.1
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [next] | [standalone]
| From | Javi Merino <javi.merino@arm.com> |
|---|---|
| Date | 2015-08-26 14:50 +0200 |
| Message-ID | <q1Ijp-602-31@gated-at.bofh.it> |
| In reply to | #1210615 |
I missed this because I wasn't CCed :( Thankfully, I'll be in
MAINTAINERS for this soon.
On Thu, Aug 20, 2015 at 05:14:02PM +0100, Vaishali Thakkar wrote:
> In the function cpufreq_get_requested_power, the memory allocated
> for load_cpu is live within the function only. And after the
> allocation it is immediately freed with devm_kfree. There is no
> need to allocate memory for load_cpu with devm function so replace
> devm_kcalloc with kcalloc and devm_kfree with kfree.
>
> Signed-off-by: Vaishali Thakkar <vthakkar1994@gmail.com>
> ---
> Changes since v1:
> - Introduce new label based on Viresh Kumar's suggestion
> ---
> drivers/thermal/cpu_cooling.c | 20 +++++++++-----------
> 1 file changed, 9 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/thermal/cpu_cooling.c b/drivers/thermal/cpu_cooling.c
> index 620dcd4..7027923 100644
> --- a/drivers/thermal/cpu_cooling.c
> +++ b/drivers/thermal/cpu_cooling.c
> @@ -584,8 +584,7 @@ static int cpufreq_get_requested_power(struct thermal_cooling_device *cdev,
> if (trace_thermal_power_cpu_get_power_enabled()) {
> u32 ncpus = cpumask_weight(&cpufreq_device->allowed_cpus);
>
> - load_cpu = devm_kcalloc(&cdev->device, ncpus, sizeof(*load_cpu),
> - GFP_KERNEL);
> + load_cpu = kcalloc(ncpus, sizeof(*load_cpu), GFP_KERNEL);
> }
>
> for_each_cpu(cpu, &cpufreq_device->allowed_cpus) {
> @@ -607,22 +606,21 @@ static int cpufreq_get_requested_power(struct thermal_cooling_device *cdev,
>
> dynamic_power = get_dynamic_power(cpufreq_device, freq);
> ret = get_static_power(cpufreq_device, tz, freq, &static_power);
> - if (ret) {
> - if (load_cpu)
> - devm_kfree(&cdev->device, load_cpu);
> - return ret;
> - }
> + if (ret)
> + goto free;
>
> - if (load_cpu) {
> + if (load_cpu)
> trace_thermal_power_cpu_get_power(
> &cpufreq_device->allowed_cpus,
> freq, load_cpu, i, dynamic_power, static_power);
>
> - devm_kfree(&cdev->device, load_cpu);
This introduces a memory leak. Keep the kfree() here, you can't drop
it. Cheers,
Javi
> - }
> -
> *power = static_power + dynamic_power;
> return 0;
> +
> +free:
> + kfree(load_cpu);
> +
> + return ret;
> }
>
> /**
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Viresh Kumar <viresh.kumar@linaro.org> |
|---|---|
| Date | 2015-08-26 15:00 +0200 |
| Message-ID | <q1It5-6bl-17@gated-at.bofh.it> |
| In reply to | #1213828 |
On 26-08-15, 13:47, Javi Merino wrote: > I missed this because I wasn't CCed :( Thankfully, I'll be in > MAINTAINERS for this soon. Yeah, I need to resend that patch soon :) > > - devm_kfree(&cdev->device, load_cpu); > > This introduces a memory leak. Keep the kfree() here, you can't drop > it. Cheers, > Javi > > > - } > > - > > *power = static_power + dynamic_power; > > return 0; > > + > > +free: > > + kfree(load_cpu); Wouldn't this make that work ? -- viresh -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Javi Merino <javi.merino@arm.com> |
|---|---|
| Date | 2015-08-26 15:10 +0200 |
| Message-ID | <q1ICK-6BL-11@gated-at.bofh.it> |
| In reply to | #1213835 |
On Wed, Aug 26, 2015 at 01:51:58PM +0100, Viresh Kumar wrote: > On 26-08-15, 13:47, Javi Merino wrote: > > I missed this because I wasn't CCed :( Thankfully, I'll be in > > MAINTAINERS for this soon. > > Yeah, I need to resend that patch soon :) > > > > - devm_kfree(&cdev->device, load_cpu); > > > > This introduces a memory leak. Keep the kfree() here, you can't drop > > it. Cheers, > > Javi > > > > > - } > > > - > > > *power = static_power + dynamic_power; > > > return 0; > > > + > > > +free: > > > + kfree(load_cpu); > > Wouldn't this make that work ? Nope, you're not reaching that code path from there. Removing the "return 0" would work, but I don't like it, since we would be calling kfree() all the time, even when the trace is not enabled. I'd rather leave the kfree() where it is. Cheers, Javi -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Viresh Kumar <viresh.kumar@linaro.org> |
|---|---|
| Date | 2015-08-26 15:20 +0200 |
| Message-ID | <q1IMq-6N8-13@gated-at.bofh.it> |
| In reply to | #1213839 |
On 26-08-15, 14:09, Javi Merino wrote: > On Wed, Aug 26, 2015 at 01:51:58PM +0100, Viresh Kumar wrote: > > On 26-08-15, 13:47, Javi Merino wrote: > > > I missed this because I wasn't CCed :( Thankfully, I'll be in > > > MAINTAINERS for this soon. > > > > Yeah, I need to resend that patch soon :) > > > > > > - devm_kfree(&cdev->device, load_cpu); > > > > > > This introduces a memory leak. Keep the kfree() here, you can't drop > > > it. Cheers, > > > Javi > > > > > > > - } > > > > - > > > > *power = static_power + dynamic_power; > > > > return 0; So, the change I suggested on V1 removed this as well :) and Vaishali missed it completely. > > > > + > > > > +free: > > > > + kfree(load_cpu); > > > > Wouldn't this make that work ? > > Nope, you're not reaching that code path from there. Removing the > "return 0" would work, but I don't like it, since we would be calling > kfree() all the time, even when the trace is not enabled. I'd rather > leave the kfree() where it is. Hmm.. -- viresh -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Vaishali Thakkar <vthakkar1994@gmail.com> |
|---|---|
| Date | 2015-08-27 03:40 +0200 |
| Message-ID | <q1Ukx-6pj-7@gated-at.bofh.it> |
| In reply to | #1213848 |
On Wed, Aug 26, 2015 at 6:44 PM, Viresh Kumar <viresh.kumar@linaro.org> wrote: > On 26-08-15, 14:09, Javi Merino wrote: >> On Wed, Aug 26, 2015 at 01:51:58PM +0100, Viresh Kumar wrote: >> > On 26-08-15, 13:47, Javi Merino wrote: >> > > I missed this because I wasn't CCed :( Thankfully, I'll be in >> > > MAINTAINERS for this soon. >> > >> > Yeah, I need to resend that patch soon :) >> > >> > > > - devm_kfree(&cdev->device, load_cpu); >> > > >> > > This introduces a memory leak. Keep the kfree() here, you can't drop >> > > it. Cheers, >> > > Javi >> > > >> > > > - } >> > > > - >> > > > *power = static_power + dynamic_power; >> > > > return 0; > > So, the change I suggested on V1 removed this as well :) and Vaishali > missed it completely. Yes. I missed the point that kfree was called at 2 places previously. Would you like me to send v3 with changes having just new label with 'goto' at both of these places or you would like to apply v1 of the patch? >> > > > + >> > > > +free: >> > > > + kfree(load_cpu); >> > >> > Wouldn't this make that work ? >> >> Nope, you're not reaching that code path from there. Removing the >> "return 0" would work, but I don't like it, since we would be calling >> kfree() all the time, even when the trace is not enabled. I'd rather >> leave the kfree() where it is. > > Hmm.. > > -- > viresh -- Vaishali -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Javi Merino <javi.merino@arm.com> |
|---|---|
| Date | 2015-08-27 11:10 +0200 |
| Message-ID | <q21m1-8oJ-1@gated-at.bofh.it> |
| In reply to | #1214267 |
On Thu, Aug 27, 2015 at 02:31:26AM +0100, Vaishali Thakkar wrote: > On Wed, Aug 26, 2015 at 6:44 PM, Viresh Kumar <viresh.kumar@linaro.org> wrote: > > On 26-08-15, 14:09, Javi Merino wrote: > >> On Wed, Aug 26, 2015 at 01:51:58PM +0100, Viresh Kumar wrote: > >> > On 26-08-15, 13:47, Javi Merino wrote: > >> > > I missed this because I wasn't CCed :( Thankfully, I'll be in > >> > > MAINTAINERS for this soon. > >> > > >> > Yeah, I need to resend that patch soon :) > >> > > >> > > > - devm_kfree(&cdev->device, load_cpu); > >> > > > >> > > This introduces a memory leak. Keep the kfree() here, you can't drop > >> > > it. Cheers, > >> > > Javi > >> > > > >> > > > - } > >> > > > - > >> > > > *power = static_power + dynamic_power; > >> > > > return 0; > > > > So, the change I suggested on V1 removed this as well :) and Vaishali > > missed it completely. > > Yes. I missed the point that kfree was called at 2 places previously. > Would you like me to send v3 with changes having just new label with > 'goto' at both of these places or you would like to apply v1 of the patch? I vote for v1. I've acked it. Cheers, Javi -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web