2022-01-20 12:04:03

by Yongzhi Liu

[permalink] [raw]
Subject: [PATCH] drm/etnaviv: Add missing pm_runtime_put

pm_runtime_get_sync() increments the runtime PM usage counter even
when it returns an error code, thus a matching decrement is needed
on the error handling path to keep the counter balanced.

Signed-off-by: Yongzhi Liu <[email protected]>
---
drivers/gpu/drm/etnaviv/etnaviv_gpu.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gpu.c b/drivers/gpu/drm/etnaviv/etnaviv_gpu.c
index 242a5fd..5e81a98 100644
--- a/drivers/gpu/drm/etnaviv/etnaviv_gpu.c
+++ b/drivers/gpu/drm/etnaviv/etnaviv_gpu.c
@@ -1714,6 +1714,9 @@ static int etnaviv_gpu_bind(struct device *dev, struct device *master,
return 0;

out_sched:
+#ifdef CONFIG_PM
+ pm_runtime_put_autosuspend(gpu->dev);
+#endif
etnaviv_sched_fini(gpu);

out_workqueue:
--
2.7.4


2022-01-21 19:10:51

by Lucas Stach

[permalink] [raw]
Subject: Re: [PATCH] drm/etnaviv: Add missing pm_runtime_put

Am Dienstag, dem 18.01.2022 um 06:16 -0800 schrieb Yongzhi Liu:
> pm_runtime_get_sync() increments the runtime PM usage counter even
> when it returns an error code, thus a matching decrement is needed
> on the error handling path to keep the counter balanced.
>
Instead of adding more error handling code here, I would prefer to
convert this to pm_runtime_resume_and_get to avoid this issue.

Regards,
Lucas

> Signed-off-by: Yongzhi Liu <[email protected]>
> ---
> drivers/gpu/drm/etnaviv/etnaviv_gpu.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gpu.c b/drivers/gpu/drm/etnaviv/etnaviv_gpu.c
> index 242a5fd..5e81a98 100644
> --- a/drivers/gpu/drm/etnaviv/etnaviv_gpu.c
> +++ b/drivers/gpu/drm/etnaviv/etnaviv_gpu.c
> @@ -1714,6 +1714,9 @@ static int etnaviv_gpu_bind(struct device *dev, struct device *master,
> return 0;
>
> out_sched:
> +#ifdef CONFIG_PM
> + pm_runtime_put_autosuspend(gpu->dev);
> +#endif
> etnaviv_sched_fini(gpu);
>
> out_workqueue:


2022-01-21 19:12:52

by Yongzhi Liu

[permalink] [raw]
Subject: Re: Re: [PATCH] drm/etnaviv: Add missing pm_runtime_put

> -----原始邮件-----
> 发件人: "Lucas Stach" <[email protected]>
> 发送时间: 2022-01-19 18:51:20 (星期三)
> 收件人: "Yongzhi Liu" <[email protected]>, [email protected], [email protected], [email protected], [email protected], [email protected]
> 抄送: [email protected], [email protected]
> 主题: Re: [PATCH] drm/etnaviv: Add missing pm_runtime_put
>
> Am Dienstag, dem 18.01.2022 um 06:16 -0800 schrieb Yongzhi Liu:
> > pm_runtime_get_sync() increments the runtime PM usage counter even
> > when it returns an error code, thus a matching decrement is needed
> > on the error handling path to keep the counter balanced.
> >
> Instead of adding more error handling code here, I would prefer to
> convert this to pm_runtime_resume_and_get to avoid this issue.
>
> Regards,
> Lucas
>

I will resend my modified patch. Thanks for your reply.

> > Signed-off-by: Yongzhi Liu <[email protected]>
> > ---
> > drivers/gpu/drm/etnaviv/etnaviv_gpu.c | 3 +++
> > 1 file changed, 3 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gpu.c b/drivers/gpu/drm/etnaviv/etnaviv_gpu.c
> > index 242a5fd..5e81a98 100644
> > --- a/drivers/gpu/drm/etnaviv/etnaviv_gpu.c
> > +++ b/drivers/gpu/drm/etnaviv/etnaviv_gpu.c
> > @@ -1714,6 +1714,9 @@ static int etnaviv_gpu_bind(struct device *dev, struct device *master,
> > return 0;
> >
> > out_sched:
> > +#ifdef CONFIG_PM
> > + pm_runtime_put_autosuspend(gpu->dev);
> > +#endif
> > etnaviv_sched_fini(gpu);
> >
> > out_workqueue:
>