The new, working dma-buf-container is introduced by the commit
ee1d9055d ('dma-buf: introduce dma-buf container'). It still supports
the same API functions but the contexts are slightly changed because
the design of dma-buf-container is changed.
Specifically, dmabuf_container_get_count() now returns -EINVAL instead
of 0 for the dma-bufs that is not a dma-buf-container. This change of
return value comes from the fact that dma-buf-container allows having
no dma-buf by its design although it is impossible to create an empty
dma-buf-container in practice.
Change-Id: I38b7534b2e0bb30e8ec331d019a089736d847dbe
Signed-off-by: Cho KyongHo <pullip.cho@samsung.com>
#include <linux/slab.h>
#include <linux/sched/clock.h>
#include <linux/ion_exynos.h>
-#include <linux/dmabuf_container.h>
+#include <linux/dma-buf-container.h>
#include <media/videobuf2-dma-sg.h>
#include <asm/cacheflush.h>
buf->num_bufs_in_vb = s5p_mfc_bufcon_get_buf_count(dmabuf);
mfc_debug(3, "bufcon count:%d\n", buf->num_bufs_in_vb);
+ if (buf->num_bufs_in_vb == 0) {
+ mfc_err_ctx("bufcon count couldn't be zero\n");
+ s5p_mfc_mem_put_dmabuf(dmabuf);
+ return -ENOMEM;
+ }
+
+ if (buf->num_bufs_in_vb < 0)
+ buf->num_bufs_in_vb = 0;
+
if (!ctx->batch_mode && buf->num_bufs_in_vb > 0) {
ctx->batch_mode = 1;
mfc_debug(3, "buffer batch mode enabled\n");