Re: [PATCH RESEND] PM: domains: Fix return value of API dev_pm_get_subsys_data()

From: Zijun Hu
Date: Wed Nov 13 2024 - 08:09:10 EST


On 2024/11/12 19:46, Greg Kroah-Hartman wrote:
> On Mon, Oct 28, 2024 at 08:31:11PM +0800, Zijun Hu wrote:
>> From: Zijun Hu <quic_zijuhu@xxxxxxxxxxx>
>>
>> dev_pm_get_subsys_data() has below 2 issues under condition
>> (@dev->power.subsys_data != NULL):
>>
>> - it will do unnecessary kzalloc() and kfree().
>
> But that's ok, everything still works, right?
>

i don't think so, as explained below:

under condition (@dev->power.subsys_data != NULL), the API does
not need to do kzalloc() and should always return 0 (success).

but it actually does *unnecessary* kzalloc() and have below impact
shown:

if (kzalloc() is successfully)
it will degrade the API's performance
else
it changed the API's return value to -ENOMEM from 0, that
will impact caller's logic.

>> - it will return -ENOMEM if the kzalloc() fails, that is wrong
>> since the kzalloc() is not needed.
>
> But it's ok to return the proper error if the system is that broken.
> >>
>> Fixed by not doing kzalloc() and returning 0 for the condition.
>>
>> Fixes: ef27bed1870d ("PM: Reference counting of power.subsys_data")
>> Cc: stable@xxxxxxxxxxxxxxx
>
> Why is this relevant for stable kernels?
>

it has impact related to performance and logic as explained above.

> thanks,
>
> greg k-h