[PATCH v7 5/5] dma-buf: Reject attach request from importers that use dma_virt_ops
Jianxin Xiong
jianxin.xiong at intel.com
Wed Nov 4 22:06:35 UTC 2020
dma_virt_ops is used by virtual devices that map pages / scatterlists to
virtual addresses for CPU access instead of performing DMA. This is not
the intended use of dma_buf_attach() and dma_buf_map_attachment(). CPU
access of dma-buf should use dma_buf_vmap() and related functions.
Signed-off-by: Jianxin Xiong <jianxin.xiong at intel.com>
---
drivers/dma-buf/dma-buf.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/dma-buf/dma-buf.c b/drivers/dma-buf/dma-buf.c
index 9a054fb5..ba2b877 100644
--- a/drivers/dma-buf/dma-buf.c
+++ b/drivers/dma-buf/dma-buf.c
@@ -686,6 +686,11 @@ struct dma_buf_attachment *
if (WARN_ON(importer_ops && !importer_ops->move_notify))
return ERR_PTR(-EINVAL);
+#ifdef CONFIG_DMA_VIRT_OPS
+ if (dev->dma_ops == &dma_virt_ops)
+ return ERR_PTR(-EINVAL);
+#endif
+
attach = kzalloc(sizeof(*attach), GFP_KERNEL);
if (!attach)
return ERR_PTR(-ENOMEM);
--
1.8.3.1
More information about the dri-devel
mailing list