[Linaro-mm-sig] [PATCH] dma-buf: add get_dma_buf()

Kyungmin Park kmpark at infradead.org
Fri Mar 16 21:11:26 PDT 2012


Reviewed-by: Kyungmin Park <kyungmin.park at samsung.com>

On 3/17/12, Rob Clark <rob.clark at linaro.org> wrote:
> From: Rob Clark <rob at ti.com>
>
> 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 at ti.com>
> ---
> Minor update on original to add a missing #include
>
>  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 891457a..bc4203dc 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);
> --
> 1.7.5.4
>
>
> _______________________________________________
> Linaro-mm-sig mailing list
> Linaro-mm-sig at lists.linaro.org
> http://lists.linaro.org/mailman/listinfo/linaro-mm-sig
>


More information about the dri-devel mailing list