Commit a26fd92b authored by Huan Yang's avatar Huan Yang Committed by Vivek Kasireddy
Browse files

udmabuf: fix vmap missed offset page



Before invoke vmap, we need offer a pages pointer array which each page
need to map in vmalloc area.

But currently vmap_udmabuf only set each folio's head page into pages,
missed each offset pages when iter.

This patch set the correctly offset page in each folio into array.

Signed-off-by: default avatarHuan Yang <link@vivo.com>
Fixes: 5e72b2b4 ("udmabuf: convert udmabuf driver to use folios")
Acked-by: default avatarVivek Kasireddy <vivek.kasireddy@intel.com>
Signed-off-by: default avatarVivek Kasireddy <vivek.kasireddy@intel.com>
Link: https://lore.kernel.org/r/20250428073831.19942-3-link@vivo.com
parent ceb7b62e
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -120,7 +120,8 @@ static int vmap_udmabuf(struct dma_buf *buf, struct iosys_map *map)
		return -ENOMEM;

	for (pg = 0; pg < ubuf->pagecount; pg++)
		pages[pg] = &ubuf->folios[pg]->page;
		pages[pg] = folio_page(ubuf->folios[pg],
				       ubuf->offsets[pg] >> PAGE_SHIFT);

	vaddr = vm_map_ram(pages, ubuf->pagecount, -1);
	kvfree(pages);