Messages in this thread |  | | Date | Thu, 4 Sep 2025 15:56:08 +0800 | | Subject | Re: [PATCH v4 10/10] PM: EM: Use scope-based cleanup helper | | From | Zihuan Zhang <> |
| |
在 2025/9/3 21:43, Krzysztof Kozlowski 写道: > On 03/09/2025 15:41, Rafael J. Wysocki wrote: >>>> 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! > > ... and the only exception would be if there is no single constructor, > but multiple (in if() block). That's not the case here, I think. > > Best regards, > Krzysztof
Sorry, I didn’t fully understand this earlier. In v3 I split the definition and assignment mainly because the CPU value was obtained later, so I thought I couldn’t initialize it in one go at the top of the function. Honestly, it was also for “prettier” style.
After looking at the code Rafael just committed, I realized I can simply define and assign the variable later in one line, without needing to separate them. I’ll fix this in the next version.
Thanks for pointing it out!
|  |