summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2012-03-16 11:34:02 +0100
committerSumit Semwal <sumit.semwal@ti.com>2012-03-26 08:02:26 +0200
commit55c1c4ca23d0f2736ef7c219d0fb005323ff8ee0 (patch)
tree52c2ae868121e09df3d77fc998f233549cf8ae34
parentdma-buf: add dma_data_direction to unmap dma_buf_op (diff)
downloadlinux-55c1c4ca23d0f2736ef7c219d0fb005323ff8ee0.tar.xz
linux-55c1c4ca23d0f2736ef7c219d0fb005323ff8ee0.zip
dma-buf: pass flags into dma_buf_fd.
We need to pass the flags into dma_buf_fd at this point, so the flags end up doing the right thing for O_CLOEXEC. Signed-off-by: Dave Airlie <airlied@redhat.com> Signed-off-by: Rob Clark <rob@ti.com> Signed-off-by: Sumit Semwal <sumit.semwal@linaro.org>
-rw-r--r--drivers/base/dma-buf.c5
-rw-r--r--include/linux/dma-buf.h2
2 files changed, 4 insertions, 3 deletions
diff --git a/drivers/base/dma-buf.c b/drivers/base/dma-buf.c
index c9a945fd1a04..3c8c0232ce43 100644
--- a/drivers/base/dma-buf.c
+++ b/drivers/base/dma-buf.c
@@ -107,17 +107,18 @@ EXPORT_SYMBOL_GPL(dma_buf_export);
/**
* dma_buf_fd - returns a file descriptor for the given dma_buf
* @dmabuf: [in] pointer to dma_buf for which fd is required.
+ * @flags: [in] flags to give to fd
*
* On success, returns an associated 'fd'. Else, returns error.
*/
-int dma_buf_fd(struct dma_buf *dmabuf)
+int dma_buf_fd(struct dma_buf *dmabuf, int flags)
{
int error, fd;
if (!dmabuf || !dmabuf->file)
return -EINVAL;
- error = get_unused_fd();
+ error = get_unused_fd_flags(flags);
if (error < 0)
return error;
fd = error;
diff --git a/include/linux/dma-buf.h b/include/linux/dma-buf.h
index a885b2689b8f..891457a86b30 100644
--- a/include/linux/dma-buf.h
+++ b/include/linux/dma-buf.h
@@ -117,7 +117,7 @@ void dma_buf_detach(struct dma_buf *dmabuf,
struct dma_buf_attachment *dmabuf_attach);
struct dma_buf *dma_buf_export(void *priv, const struct dma_buf_ops *ops,
size_t size, int flags);
-int dma_buf_fd(struct dma_buf *dmabuf);
+int dma_buf_fd(struct dma_buf *dmabuf, int flags);
struct dma_buf *dma_buf_get(int fd);
void dma_buf_put(struct dma_buf *dmabuf);