mbox series

[v3,0/2] Fix usage counter leak by adding a general sync ops

Message ID 20201110092933.3342784-1-zhangqilong3@huawei.com
Headers show
Series Fix usage counter leak by adding a general sync ops | expand

Message

Zhang Qilong Nov. 10, 2020, 9:29 a.m. UTC
In many case, we need to check return value of pm_runtime_get_sync,
but it brings a trouble to the usage counter processing. Many callers
forget to decrease the usage counter when it failed, which could
resulted in reference leak. It has been discussed a lot[0][1]. So we
add a function to deal with the usage counter for better coding and
view. Then, we replace pm_runtime_resume_and_get with it in fec_main.c
to avoid it.

[0]https://lkml.org/lkml/2020/6/14/88
[1]https://patchwork.ozlabs.org/project/linux-tegra/list/?series=178139

Zhang Qilong (2):
  PM: runtime: Add pm_runtime_resume_and_get to deal with usage counter
  net: fec: Fix reference count leak in fec series ops

 drivers/net/ethernet/freescale/fec_main.c | 12 +++++-------
 include/linux/pm_runtime.h                | 21 +++++++++++++++++++++
 2 files changed, 26 insertions(+), 7 deletions(-)

Comments

Jakub Kicinski Nov. 16, 2020, 5:40 p.m. UTC | #1
On Tue, 10 Nov 2020 17:29:31 +0800 Zhang Qilong wrote:
> In many case, we need to check return value of pm_runtime_get_sync,

> but it brings a trouble to the usage counter processing. Many callers

> forget to decrease the usage counter when it failed, which could

> resulted in reference leak. It has been discussed a lot[0][1]. So we

> add a function to deal with the usage counter for better coding and

> view. Then, we replace pm_runtime_resume_and_get with it in fec_main.c

> to avoid it.

> 

> [0]https://lkml.org/lkml/2020/6/14/88

> [1]https://patchwork.ozlabs.org/project/linux-tegra/list/?series=178139


Actually, I lied, this is a fix so applying to net, not net-next.

Thanks!