summaryrefslogtreecommitdiff
path: root/drivers/dma-buf
diff options
context:
space:
mode:
authorHuan Yang <link@vivo.com>2025-04-28 15:38:30 +0800
committerVivek Kasireddy <vivek.kasireddy@intel.com>2025-05-15 21:54:52 -0700
commita26fd92b7223160ad31c3e2971b63178faed9cf5 (patch)
treeab7a0e16511d115de887b631650c23b71cc5eb0d /drivers/dma-buf
parentceb7b62eaaaacfcf87473bd2e99ac73a758620cb (diff)
downloadlinux-a26fd92b7223160ad31c3e2971b63178faed9cf5.tar.gz
linux-a26fd92b7223160ad31c3e2971b63178faed9cf5.tar.bz2
linux-a26fd92b7223160ad31c3e2971b63178faed9cf5.zip
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: Huan Yang <link@vivo.com> Fixes: 5e72b2b41a21 ("udmabuf: convert udmabuf driver to use folios") Acked-by: Vivek Kasireddy <vivek.kasireddy@intel.com> Signed-off-by: Vivek Kasireddy <vivek.kasireddy@intel.com> Link: https://lore.kernel.org/r/20250428073831.19942-3-link@vivo.com
Diffstat (limited to 'drivers/dma-buf')
-rw-r--r--drivers/dma-buf/udmabuf.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/dma-buf/udmabuf.c b/drivers/dma-buf/udmabuf.c
index 79845565089d..af5200e360a6 100644
--- a/drivers/dma-buf/udmabuf.c
+++ b/drivers/dma-buf/udmabuf.c
@@ -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);