linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] media: vb2: unify calling of set_page_dirty_lock
@ 2017-08-29 11:26 Stanimir Varbanov
  2017-10-10  7:42 ` Stanimir Varbanov
  2017-10-10 15:40 ` Nicolas Dufresne
  0 siblings, 2 replies; 14+ messages in thread
From: Stanimir Varbanov @ 2017-08-29 11:26 UTC (permalink / raw)
  To: Mauro Carvalho Chehab
  Cc: Pawel Osciak, Marek Szyprowski, Kyungmin Park, linux-media,
	linux-kernel, Stanimir Varbanov

Currently videobuf2-dma-sg checks for dma direction for
every single page and videobuf2-dc lacks any dma direction
checks and calls set_page_dirty_lock unconditionally.

Thus unify and align the invocations of set_page_dirty_lock
for videobuf2-dc, videobuf2-sg  memory allocators with
videobuf2-vmalloc, i.e. the pattern used in vmalloc has been
copied to dc and dma-sg.

Suggested-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>
---
 drivers/media/v4l2-core/videobuf2-dma-contig.c | 6 ++++--
 drivers/media/v4l2-core/videobuf2-dma-sg.c     | 7 +++----
 2 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/drivers/media/v4l2-core/videobuf2-dma-contig.c b/drivers/media/v4l2-core/videobuf2-dma-contig.c
index 9f389f36566d..696e24f9128d 100644
--- a/drivers/media/v4l2-core/videobuf2-dma-contig.c
+++ b/drivers/media/v4l2-core/videobuf2-dma-contig.c
@@ -434,8 +434,10 @@ static void vb2_dc_put_userptr(void *buf_priv)
 		pages = frame_vector_pages(buf->vec);
 		/* sgt should exist only if vector contains pages... */
 		BUG_ON(IS_ERR(pages));
-		for (i = 0; i < frame_vector_count(buf->vec); i++)
-			set_page_dirty_lock(pages[i]);
+		if (buf->dma_dir == DMA_FROM_DEVICE ||
+		    buf->dma_dir == DMA_BIDIRECTIONAL)
+			for (i = 0; i < frame_vector_count(buf->vec); i++)
+				set_page_dirty_lock(pages[i]);
 		sg_free_table(sgt);
 		kfree(sgt);
 	}
diff --git a/drivers/media/v4l2-core/videobuf2-dma-sg.c b/drivers/media/v4l2-core/videobuf2-dma-sg.c
index 6808231a6bdc..753ed3138dcc 100644
--- a/drivers/media/v4l2-core/videobuf2-dma-sg.c
+++ b/drivers/media/v4l2-core/videobuf2-dma-sg.c
@@ -292,11 +292,10 @@ static void vb2_dma_sg_put_userptr(void *buf_priv)
 	if (buf->vaddr)
 		vm_unmap_ram(buf->vaddr, buf->num_pages);
 	sg_free_table(buf->dma_sgt);
-	while (--i >= 0) {
-		if (buf->dma_dir == DMA_FROM_DEVICE ||
-		    buf->dma_dir == DMA_BIDIRECTIONAL)
+	if (buf->dma_dir == DMA_FROM_DEVICE ||
+	    buf->dma_dir == DMA_BIDIRECTIONAL)
+		while (--i >= 0)
 			set_page_dirty_lock(buf->pages[i]);
-	}
 	vb2_destroy_framevec(buf->vec);
 	kfree(buf);
 }
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2018-03-14  2:02 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-08-29 11:26 [PATCH] media: vb2: unify calling of set_page_dirty_lock Stanimir Varbanov
2017-10-10  7:42 ` Stanimir Varbanov
2017-10-10  8:01   ` Marek Szyprowski
2017-10-10  8:54     ` Sakari Ailus
2017-10-10 15:40 ` Nicolas Dufresne
2017-10-15 20:40   ` Sakari Ailus
2017-10-15 23:09     ` Nicolas Dufresne
2017-10-16 11:24       ` Sakari Ailus
2017-10-17 10:14       ` Sakari Ailus
2017-10-17 14:19         ` Nicolas Dufresne
2017-10-18  8:34           ` Stanimir Varbanov
2018-03-14  0:44             ` Nicolas Dufresne
2018-03-14  1:09               ` Nicolas Dufresne
2018-03-14  2:02                 ` Nicolas Dufresne

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).