]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
media: vsp1: Clean up DLM objects on error
authorKieran Bingham <kieran.bingham+renesas@ideasonboard.com>
Fri, 3 Aug 2018 11:37:24 +0000 (07:37 -0400)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Fri, 3 Aug 2018 19:57:13 +0000 (15:57 -0400)
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>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
drivers/media/platform/vsp1/vsp1_dl.c

index 199843a73df1b005595ca7cb416392c412158089..64e5b25d11234785fd8e91a972a417896b98d427 100644 (file)
@@ -858,8 +858,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);
        }