2020-06-13 23:10:58

by Qiushi Wu

[permalink] [raw]
Subject: [PATCH] media: mtk-jpeg: Fix a reference count leak.

From: Qiushi Wu <[email protected]>

pm_runtime_get_sync() increments the runtime PM usage counter even
when it returns an error code. Thus call pm_runtime_put_noidle()
if pm_runtime_get_sync() fails.

Fixes: b2f0d2724ba4 ("[media] vcodec: mediatek: Add Mediatek JPEG Decoder Driver")
Signed-off-by: Qiushi Wu <[email protected]>
---
drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c b/drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c
index f82a81a3bdee..097f0b050f67 100644
--- a/drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c
+++ b/drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c
@@ -710,8 +710,10 @@ static int mtk_jpeg_start_streaming(struct vb2_queue *q, unsigned int count)
int ret = 0;

ret = pm_runtime_get_sync(ctx->jpeg->dev);
- if (ret < 0)
+ if (ret < 0) {
+ pm_runtime_put_noidle(ctx->jpeg->dev);
goto err;
+ }

return 0;
err:
--
2.17.1


2020-09-17 11:46:17

by Hans Verkuil

[permalink] [raw]
Subject: Re: [PATCH] media: mtk-jpeg: Fix a reference count leak.

On 14/06/2020 01:08, [email protected] wrote:
> From: Qiushi Wu <[email protected]>
>
> pm_runtime_get_sync() increments the runtime PM usage counter even
> when it returns an error code. Thus call pm_runtime_put_noidle()
> if pm_runtime_get_sync() fails.
>
> Fixes: b2f0d2724ba4 ("[media] vcodec: mediatek: Add Mediatek JPEG Decoder Driver")
> Signed-off-by: Qiushi Wu <[email protected]>
> ---
> drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c b/drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c
> index f82a81a3bdee..097f0b050f67 100644
> --- a/drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c
> +++ b/drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c
> @@ -710,8 +710,10 @@ static int mtk_jpeg_start_streaming(struct vb2_queue *q, unsigned int count)
> int ret = 0;
>
> ret = pm_runtime_get_sync(ctx->jpeg->dev);
> - if (ret < 0)
> + if (ret < 0) {
> + pm_runtime_put_noidle(ctx->jpeg->dev);
> goto err;
> + }
>
> return 0;
> err:
>

This patch no longer applies, can you rebase this?

Regards,

Hans

2021-04-21 17:17:56

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH] media: mtk-jpeg: Fix a reference count leak.

On Thu, 17 Sept 2020 at 13:48, Hans Verkuil <[email protected]> wrote:
>
> On 14/06/2020 01:08, [email protected] wrote:
> > From: Qiushi Wu <[email protected]>
> >
> > pm_runtime_get_sync() increments the runtime PM usage counter even
> > when it returns an error code. Thus call pm_runtime_put_noidle()
> > if pm_runtime_get_sync() fails.
> >
> > Fixes: b2f0d2724ba4 ("[media] vcodec: mediatek: Add Mediatek JPEG Decoder Driver")
> > Signed-off-by: Qiushi Wu <[email protected]>
> > ---
> > drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c | 4 +++-
> > 1 file changed, 3 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c b/drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c
> > index f82a81a3bdee..097f0b050f67 100644
> > --- a/drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c
> > +++ b/drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c
> > @@ -710,8 +710,10 @@ static int mtk_jpeg_start_streaming(struct vb2_queue *q, unsigned int count)
> > int ret = 0;
> >
> > ret = pm_runtime_get_sync(ctx->jpeg->dev);
> > - if (ret < 0)
> > + if (ret < 0) {
> > + pm_runtime_put_noidle(ctx->jpeg->dev);
> > goto err;
> > + }
> >
> > return 0;
> > err:
> >
>
> This patch no longer applies, can you rebase this?

This patch might be harmful, might be not. Probably should be skipped
due to uncertain intentions:
https://lore.kernel.org/linux-nfs/[email protected]/

Best regards,
Krzysztof