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@amd.com
On the series:
Acked-by: Daniel Vetter daniel.vetter@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->importer_ops = importer_ops; attach->importer_priv = importer_priv;attach->peer2peer = importer_ops->allow_peer2peer;
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