summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorRob Clark <rob@ti.com>2012-03-16 11:04:41 -0500
committerSumit Semwal <sumit.semwal@ti.com>2012-03-26 11:32:40 +0530
commitf9a24d1ac9cb82baf5ec5efdb6580a9ce0bd5bfc (patch)
tree6dd135509fa938eb3c9f8adab6919110a6f01f2b /include
parent55c1c4ca23d0f2736ef7c219d0fb005323ff8ee0 (diff)
downloadlinux-3.10-f9a24d1ac9cb82baf5ec5efdb6580a9ce0bd5bfc.tar.gz
linux-3.10-f9a24d1ac9cb82baf5ec5efdb6580a9ce0bd5bfc.tar.bz2
linux-3.10-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>
Diffstat (limited to 'include')
-rw-r--r--include/linux/dma-buf.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/include/linux/dma-buf.h b/include/linux/dma-buf.h
index 891457a86b3..bc4203dc6e1 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);