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@quicinc.com
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@vger.kernel.org
Why is this relevant for stable kernels?
it has impact related to performance and logic as explained above.
thanks,
greg k-h