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