[v4,05/11] media: vsp1: Clean up DLM objects on error
Commit Message
If there is an error allocating a display list within a DLM object
the existing display lists are not free'd, and neither is the DL body
pool.
Use the existing vsp1_dlm_destroy() function to clean up on error.
Signed-off-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
---
drivers/media/platform/vsp1/vsp1_dl.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
Comments
Hi Kieran,
Thank you for the patch.
On Thursday, 3 May 2018 16:36:16 EEST Kieran Bingham wrote:
> If there is an error allocating a display list within a DLM object
> the existing display lists are not free'd, and neither is the DL body
> pool.
>
> Use the existing vsp1_dlm_destroy() function to clean up on error.
>
> Signed-off-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> ---
> drivers/media/platform/vsp1/vsp1_dl.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/media/platform/vsp1/vsp1_dl.c
> b/drivers/media/platform/vsp1/vsp1_dl.c index b23e88cda49f..fbffbd407b29
> 100644
> --- a/drivers/media/platform/vsp1/vsp1_dl.c
> +++ b/drivers/media/platform/vsp1/vsp1_dl.c
> @@ -851,8 +851,10 @@ struct vsp1_dl_manager *vsp1_dlm_create(struct
> vsp1_device *vsp1, struct vsp1_dl_list *dl;
>
> dl = vsp1_dl_list_alloc(dlm);
> - if (!dl)
> + if (!dl) {
> + vsp1_dlm_destroy(dlm);
> return NULL;
> + }
>
> list_add_tail(&dl->list, &dlm->free);
> }
@@ -851,8 +851,10 @@ struct vsp1_dl_manager *vsp1_dlm_create(struct vsp1_device *vsp1,
struct vsp1_dl_list *dl;
dl = vsp1_dl_list_alloc(dlm);
- if (!dl)
+ if (!dl) {
+ vsp1_dlm_destroy(dlm);
return NULL;
+ }
list_add_tail(&dl->list, &dlm->free);
}