Hi Christian, On 20/10/2022 14:13, Christian König wrote: > When a device is snooping the CPU cache we assume that all importers > must snoop the CPU cache as well. > > Execpt for vmalloc allocations since those implement mmap() imports must > always snoop the cache or we will run into coherency problems. Looks reasonable. For this series: Acked-by: Hans Verkuil <hverkuil-cisco@xxxxxxxxx> Regards, Hans > > Signed-off-by: Christian König <christian.koenig@xxxxxxx> > --- > drivers/media/common/videobuf2/videobuf2-dma-contig.c | 2 ++ > drivers/media/common/videobuf2/videobuf2-dma-sg.c | 2 ++ > drivers/media/common/videobuf2/videobuf2-vmalloc.c | 1 + > 3 files changed, 5 insertions(+) > > diff --git a/drivers/media/common/videobuf2/videobuf2-dma-contig.c b/drivers/media/common/videobuf2/videobuf2-dma-contig.c > index 555bd40fa472..57433310c55c 100644 > --- a/drivers/media/common/videobuf2/videobuf2-dma-contig.c > +++ b/drivers/media/common/videobuf2/videobuf2-dma-contig.c > @@ -11,6 +11,7 @@ > */ > > #include <linux/dma-buf.h> > +#include <linux/dma-map-ops.h> > #include <linux/module.h> > #include <linux/refcount.h> > #include <linux/scatterlist.h> > @@ -507,6 +508,7 @@ static struct dma_buf *vb2_dc_get_dmabuf(struct vb2_buffer *vb, > exp_info.size = buf->size; > exp_info.flags = flags; > exp_info.priv = buf; > + exp_info.coherent = dev_is_dma_coherent(vb->vb2_queue->dev); > > if (!buf->sgt_base) > buf->sgt_base = vb2_dc_get_base_sgt(buf); > diff --git a/drivers/media/common/videobuf2/videobuf2-dma-sg.c b/drivers/media/common/videobuf2/videobuf2-dma-sg.c > index 36981a5b5c53..dbdd753e4a39 100644 > --- a/drivers/media/common/videobuf2/videobuf2-dma-sg.c > +++ b/drivers/media/common/videobuf2/videobuf2-dma-sg.c > @@ -10,6 +10,7 @@ > * the Free Software Foundation. > */ > > +#include <linux/dma-map-ops.h> > #include <linux/module.h> > #include <linux/mm.h> > #include <linux/refcount.h> > @@ -522,6 +523,7 @@ static struct dma_buf *vb2_dma_sg_get_dmabuf(struct vb2_buffer *vb, > exp_info.size = buf->size; > exp_info.flags = flags; > exp_info.priv = buf; > + exp_info.coherent = dev_is_dma_coherent(vb->vb2_queue->dev); > > if (WARN_ON(!buf->dma_sgt)) > return NULL; > diff --git a/drivers/media/common/videobuf2/videobuf2-vmalloc.c b/drivers/media/common/videobuf2/videobuf2-vmalloc.c > index 41db707e43a4..0b6874733e86 100644 > --- a/drivers/media/common/videobuf2/videobuf2-vmalloc.c > +++ b/drivers/media/common/videobuf2/videobuf2-vmalloc.c > @@ -341,6 +341,7 @@ static struct dma_buf *vb2_vmalloc_get_dmabuf(struct vb2_buffer *vb, > exp_info.size = buf->size; > exp_info.flags = flags; > exp_info.priv = buf; > + exp_info.coherent = true; > > if (WARN_ON(!buf->vaddr)) > return NULL;