Thread (33 messages) 33 messages, 5 authors, 2025-09-05

Re: [PATCH v4 10/10] PM: EM: Use scope-based cleanup helper

From: "Rafael J. Wysocki" <rafael@kernel.org>
Date: 2025-09-03 13:41:39
Also in: dri-devel, imx, intel-gfx, linux-acpi, linux-arm-kernel, linux-omap, linux-pm, lkml

On Wed, Sep 3, 2025 at 3:22 PM Krzysztof Kozlowski [off-list ref] wrote:
On 03/09/2025 15:17, Zihuan Zhang wrote:
quoted
Replace the manual cpufreq_cpu_put() with __free(put_cpufreq_policy)
annotation for policy references. This reduces the risk of reference
counting mistakes and aligns the code with the latest kernel style.

No functional change intended.

Signed-off-by: Zihuan Zhang <redacted>
---
 kernel/power/energy_model.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/kernel/power/energy_model.c b/kernel/power/energy_model.c
index ea7995a25780..99401678e809 100644
--- a/kernel/power/energy_model.c
+++ b/kernel/power/energy_model.c
@@ -451,7 +451,7 @@ static void
 em_cpufreq_update_efficiencies(struct device *dev, struct em_perf_state *table)
 {
      struct em_perf_domain *pd = dev->em_pd;
-     struct cpufreq_policy *policy;
+     struct cpufreq_policy *policy __free(put_cpufreq_policy) = NULL;
This is not really correct coding style. Please read how to use
cleanup.h expressed in that header. You should have here proper
constructor or this should be moved. Or this should not be __free()...
I gather that this is what you mean (quoted verbatim from cleanup.h)

 * Given that the "__free(...) = NULL" pattern for variables defined at
 * the top of the function poses this potential interdependency problem
 * the recommendation is to always define and assign variables in one
 * statement and not group variable definitions at the top of the
 * function when __free() is used.

and thanks for pointing this out!
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help