diff options
author | Rob Clark <rob@ti.com> | 2012-03-16 17:04:41 +0100 |
---|---|---|
committer | Sumit Semwal <sumit.semwal@ti.com> | 2012-03-26 08:02:40 +0200 |
commit | f9a24d1ac9cb82baf5ec5efdb6580a9ce0bd5bfc (patch) | |
tree | 6dd135509fa938eb3c9f8adab6919110a6f01f2b | |
parent | dma-buf: pass flags into dma_buf_fd. (diff) | |
download | linux-f9a24d1ac9cb82baf5ec5efdb6580a9ce0bd5bfc.tar.xz linux-f9a24d1ac9cb82baf5ec5efdb6580a9ce0bd5bfc.zip |
dma-buf: add get_dma_buf()
Works in a similar way to get_file(), and is needed in cases such as
when the exporter needs to also keep a reference to the dmabuf (that
is later released with a dma_buf_put()), and possibly other similar
cases.
Signed-off-by: Rob Clark <rob@ti.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Sumit Semwal <sumit.semwal@linaro.org>
-rw-r--r-- | include/linux/dma-buf.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/include/linux/dma-buf.h b/include/linux/dma-buf.h index 891457a86b30..bc4203dc6e18 100644 --- a/include/linux/dma-buf.h +++ b/include/linux/dma-buf.h @@ -30,6 +30,7 @@ #include <linux/scatterlist.h> #include <linux/list.h> #include <linux/dma-mapping.h> +#include <linux/fs.h> struct dma_buf; struct dma_buf_attachment; @@ -110,6 +111,20 @@ struct dma_buf_attachment { void *priv; }; +/** + * get_dma_buf - convenience wrapper for get_file. + * @dmabuf: [in] pointer to dma_buf + * + * Increments the reference count on the dma-buf, needed in case of drivers + * that either need to create additional references to the dmabuf on the + * kernel side. For example, an exporter that needs to keep a dmabuf ptr + * so that subsequent exports don't create a new dmabuf. + */ +static inline void get_dma_buf(struct dma_buf *dmabuf) +{ + get_file(dmabuf->file); +} + #ifdef CONFIG_DMA_SHARED_BUFFER struct dma_buf_attachment *dma_buf_attach(struct dma_buf *dmabuf, struct device *dev); |