diff options
| author | Huan Yang <link@vivo.com> | 2025-04-28 15:38:30 +0800 |
|---|---|---|
| committer | Vivek Kasireddy <vivek.kasireddy@intel.com> | 2025-05-15 21:54:52 -0700 |
| commit | a26fd92b7223160ad31c3e2971b63178faed9cf5 (patch) | |
| tree | ab7a0e16511d115de887b631650c23b71cc5eb0d /drivers/dma-buf | |
| parent | ceb7b62eaaaacfcf87473bd2e99ac73a758620cb (diff) | |
| download | linux-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.c | 3 |
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); |
