[PATCH] media: verisilicon: Free post processor buffers on error
Nicolas Dufresne
nicolas.dufresne at collabora.com
Mon Apr 28 10:25:59 PDT 2025
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 at collabora.com>
Reviewed-by: Nicolas Dufresne <nicolas.dufresne at collabora.com>
If you are fine with the suggestion, I can make the changes while
applying.
> ---
> 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;
--
Nicolas Dufresne
Principal Engineer at Collabora
More information about the Linux-rockchip
mailing list