media: ti-vpe: Add cleanup in vpdma_list_cleanup()

If an error occurs in this function, no cleanup is executed, leading to
memory/resource leaks. To fix this issue, introduce two labels to perform
the cleanup work.

Signed-off-by: Wenwen Wang <wenwen@cs.uga.edu>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
This commit is contained in:
Wenwen Wang 2019-08-18 03:40:04 -03:00 committed by Mauro Carvalho Chehab
parent 51d47e578a
commit 6ca5989e44
1 changed files with 6 additions and 4 deletions

View File

@ -445,23 +445,25 @@ int vpdma_list_cleanup(struct vpdma_data *vpdma, int list_num,
ret = vpdma_map_desc_buf(vpdma, &abort_list.buf);
if (ret)
return ret;
goto free_desc;
ret = vpdma_submit_descs(vpdma, &abort_list, list_num);
if (ret)
return ret;
goto unmap_desc;
while (vpdma_list_busy(vpdma, list_num) && --timeout)
;
if (timeout == 0) {
dev_err(&vpdma->pdev->dev, "Timed out cleaning up VPDMA list\n");
return -EBUSY;
ret = -EBUSY;
}
unmap_desc:
vpdma_unmap_desc_buf(vpdma, &abort_list.buf);
free_desc:
vpdma_free_desc_buf(&abort_list.buf);
return 0;
return ret;
}
EXPORT_SYMBOL(vpdma_list_cleanup);