[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <2782084.mvXUDI8C0e@earth>
Date: Tue, 29 Apr 2025 08:51:32 -0400
From: Detlev Casanova <detlev.casanova@...labora.com>
To: linux-kernel@...r.kernel.org,
Nicolas Dufresne <nicolas.dufresne@...labora.com>
Cc: Benjamin Gaignard <benjamin.gaignard@...labora.com>,
Philipp Zabel <p.zabel@...gutronix.de>,
Mauro Carvalho Chehab <mchehab@...nel.org>, linux-media@...r.kernel.org,
linux-rockchip@...ts.infradead.org, kernel@...labora.com
Subject: Re: [PATCH] media: verisilicon: Free post processor buffers on error
On Monday, 28 April 2025 13:25:59 EDT Nicolas Dufresne wrote:
> Le vendredi 25 avril 2025 à 15:24 -0400, Detlev Casanova a écrit :
> > When initializing the post processor, it allocates the same number of
>
> What do you think reworking as:
>
> During initialization, the post processor allocates the same number of
>
> > buffers as the buf queue.
> > As the init function is called in streamon(), if an allocation fails,
> > streamon will return an error and streamoff() will not be called, keeping
> > all post processor buffers allocated.
> >
> > To avoid that, all post proc buffers are freed in case of an allocation
> > error.
> >
> > Fixes: 26711491a807 ("media: verisilicon: Refactor postprocessor to store
> > more buffers") Signed-off-by: Detlev Casanova
> > <detlev.casanova@...labora.com>
>
> Reviewed-by: Nicolas Dufresne <nicolas.dufresne@...labora.com>
>
> If you are fine with the suggestion, I can make the changes while
> applying.
Yes, that's goot for me.
Detlev.
> > ---
> > drivers/media/platform/verisilicon/hantro_postproc.c | 4 +++-
> > 1 file changed, 3 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/media/platform/verisilicon/hantro_postproc.c
> > b/drivers/media/platform/verisilicon/hantro_postproc.c index
> > c435a393e0cb7..9f559a13d409b 100644
> > --- a/drivers/media/platform/verisilicon/hantro_postproc.c
> > +++ b/drivers/media/platform/verisilicon/hantro_postproc.c
> > @@ -250,8 +250,10 @@ int hantro_postproc_init(struct hantro_ctx *ctx)
> >
> > for (i = 0; i < num_buffers; i++) {
> > ret = hantro_postproc_alloc(ctx, i);
> > - if (ret)
> > + if (ret) {
> > + hantro_postproc_free(ctx);
> > return ret;
> > + }
> > }
> >
> > return 0;
Powered by blists - more mailing lists