2021-04-07 19:02:57

by Dinghao Liu

[permalink] [raw]
Subject: [PATCH] media: platform: sti: Fix rumtime PM imbalance in regs_show

pm_runtime_get_sync() will increase the rumtime PM counter
even it returns an error. Thus a pairing decrement is needed
to prevent refcount leak. Fix this by replacing this API with
pm_runtime_resume_and_get(), which will not change the runtime
PM counter on error.

Signed-off-by: Dinghao Liu <[email protected]>
---
drivers/media/platform/sti/bdisp/bdisp-debug.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/media/platform/sti/bdisp/bdisp-debug.c b/drivers/media/platform/sti/bdisp/bdisp-debug.c
index 2b270093009c..a27f638df11c 100644
--- a/drivers/media/platform/sti/bdisp/bdisp-debug.c
+++ b/drivers/media/platform/sti/bdisp/bdisp-debug.c
@@ -480,7 +480,7 @@ static int regs_show(struct seq_file *s, void *data)
int ret;
unsigned int i;

- ret = pm_runtime_get_sync(bdisp->dev);
+ ret = pm_runtime_resume_and_get(bdisp->dev);
if (ret < 0) {
seq_puts(s, "Cannot wake up IP\n");
return 0;
--
2.17.1


2021-04-07 21:04:30

by Hans Verkuil

[permalink] [raw]
Subject: Re: [PATCH] media: platform: sti: Fix rumtime PM imbalance in regs_show

On 07/04/2021 07:43, Dinghao Liu wrote:
> pm_runtime_get_sync() will increase the rumtime PM counter
> even it returns an error. Thus a pairing decrement is needed
> to prevent refcount leak. Fix this by replacing this API with
> pm_runtime_resume_and_get(), which will not change the runtime
> PM counter on error.

Nice that a new function was created for this. Good news.

Just a heads up: if you make more patches like this, make sure you
fix the typo 'rumtime' to 'runtime'. I'll fix it manually, no need
to repost. And 'rumtime' does sound tasty!

Regards,

Hans

>
> Signed-off-by: Dinghao Liu <[email protected]>
> ---
> drivers/media/platform/sti/bdisp/bdisp-debug.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/media/platform/sti/bdisp/bdisp-debug.c b/drivers/media/platform/sti/bdisp/bdisp-debug.c
> index 2b270093009c..a27f638df11c 100644
> --- a/drivers/media/platform/sti/bdisp/bdisp-debug.c
> +++ b/drivers/media/platform/sti/bdisp/bdisp-debug.c
> @@ -480,7 +480,7 @@ static int regs_show(struct seq_file *s, void *data)
> int ret;
> unsigned int i;
>
> - ret = pm_runtime_get_sync(bdisp->dev);
> + ret = pm_runtime_resume_and_get(bdisp->dev);
> if (ret < 0) {
> seq_puts(s, "Cannot wake up IP\n");
> return 0;
>