[PATCH 1/6] dma-buf: add peer2peer flag
Daniel Vetter
daniel at ffwll.ch
Tue Mar 31 08:46:02 UTC 2020
On Mon, Mar 30, 2020 at 03:55:31PM +0200, Christian König wrote:
> Add a peer2peer flag noting that the importer can deal with device
> resources which are not backed by pages.
>
> Signed-off-by: Christian König <christian.koenig at amd.com>
On the series:
Acked-by: Daniel Vetter <daniel.vetter at ffwll.ch>
> ---
> drivers/dma-buf/dma-buf.c | 2 ++
> include/linux/dma-buf.h | 10 ++++++++++
> 2 files changed, 12 insertions(+)
>
> diff --git a/drivers/dma-buf/dma-buf.c b/drivers/dma-buf/dma-buf.c
> index ccc9eda1bc28..570c923023e6 100644
> --- a/drivers/dma-buf/dma-buf.c
> +++ b/drivers/dma-buf/dma-buf.c
> @@ -690,6 +690,8 @@ dma_buf_dynamic_attach(struct dma_buf *dmabuf, struct device *dev,
>
> attach->dev = dev;
> attach->dmabuf = dmabuf;
> + if (importer_ops)
> + attach->peer2peer = importer_ops->allow_peer2peer;
> attach->importer_ops = importer_ops;
> attach->importer_priv = importer_priv;
>
> diff --git a/include/linux/dma-buf.h b/include/linux/dma-buf.h
> index 1ade486fc2bb..82e0a4a64601 100644
> --- a/include/linux/dma-buf.h
> +++ b/include/linux/dma-buf.h
> @@ -334,6 +334,14 @@ struct dma_buf {
> * Attachment operations implemented by the importer.
> */
> struct dma_buf_attach_ops {
> + /**
> + * @allow_peer2peer:
> + *
> + * If this is set to true the importer must be able to handle peer
> + * resources without struct pages.
> + */
> + bool allow_peer2peer;
> +
> /**
> * @move_notify
> *
> @@ -362,6 +370,7 @@ struct dma_buf_attach_ops {
> * @node: list of dma_buf_attachment, protected by dma_resv lock of the dmabuf.
> * @sgt: cached mapping.
> * @dir: direction of cached mapping.
> + * @peer2peer: true if the importer can handle peer resources without pages.
> * @priv: exporter specific attachment data.
> * @importer_ops: importer operations for this attachment, if provided
> * dma_buf_map/unmap_attachment() must be called with the dma_resv lock held.
> @@ -382,6 +391,7 @@ struct dma_buf_attachment {
> struct list_head node;
> struct sg_table *sgt;
> enum dma_data_direction dir;
> + bool peer2peer;
> const struct dma_buf_attach_ops *importer_ops;
> void *importer_priv;
> void *priv;
> --
> 2.17.1
>
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
More information about the amd-gfx
mailing list