* [PATCH] dma-direct: fix type mismatch in dma_direct_alloc_pages @ 2026-08-14 6:30 ` yangge1116 2026-08-14 7:11 ` Marek Szyprowski 0 siblings, 1 reply; 2+ messages in thread From: yangge1116 @ 2026-08-14 6:30 UTC (permalink / raw) To: m.szyprowski Cc: iommu, linux-kernel, stable, robin.murphy, hch, liuzixing, Ge Yang From: Ge Yang <yangge1116@126.com> The pool allocation path directly returned the void* cpu virtual address from dma_direct_alloc_from_pool(), which is type‑mismatched against struct page *. Convert the dma_handle to page via dma_direct_to_page() instead. Fixes: 5b138c534fda ("dma-direct: factor out a dma_direct_alloc_from_pool helper") Signed-off-by: Ge Yang <yangge1116@126.com> Cc: stable@vger.kernel.org --- kernel/dma/direct.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/kernel/dma/direct.c b/kernel/dma/direct.c index 4391b79..f496568 100644 --- a/kernel/dma/direct.c +++ b/kernel/dma/direct.c @@ -356,8 +356,12 @@ struct page *dma_direct_alloc_pages(struct device *dev, size_t size, struct page *page; void *ret; - if (force_dma_unencrypted(dev) && dma_direct_use_pool(dev, gfp)) - return dma_direct_alloc_from_pool(dev, size, dma_handle, gfp); + if (force_dma_unencrypted(dev) && dma_direct_use_pool(dev, gfp)) { + ret = dma_direct_alloc_from_pool(dev, size, dma_handle, gfp); + if (!ret) + return NULL; + return dma_direct_to_page(dev, *dma_handle); + } page = __dma_direct_alloc_pages(dev, size, gfp, false); if (!page) -- 2.7.4 ^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH] dma-direct: fix type mismatch in dma_direct_alloc_pages 2026-08-14 6:30 ` [PATCH] dma-direct: fix type mismatch in dma_direct_alloc_pages yangge1116 @ 2026-08-14 7:11 ` Marek Szyprowski 0 siblings, 0 replies; 2+ messages in thread From: Marek Szyprowski @ 2026-08-14 7:11 UTC (permalink / raw) To: yangge1116; +Cc: iommu, linux-kernel, stable, robin.murphy, hch, liuzixing On 14.08.2026 08:30, yangge1116@126.com wrote: > From: Ge Yang <yangge1116@126.com> > > The pool allocation path directly returned the void* cpu virtual > address from dma_direct_alloc_from_pool(), which is type‑mismatched > against struct page *. Convert the dma_handle to page via > dma_direct_to_page() instead. > > Fixes: 5b138c534fda ("dma-direct: factor out a dma_direct_alloc_from_pool helper") > Signed-off-by: Ge Yang <yangge1116@126.com> > Cc: stable@vger.kernel.org This is a duplicate of the patch already applied to dma-mapping-for-next, see https://lore.kernel.org/r/20260717180442.110954-2-aneesh.kumar@kernel.org > --- > kernel/dma/direct.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/kernel/dma/direct.c b/kernel/dma/direct.c > index 4391b79..f496568 100644 > --- a/kernel/dma/direct.c > +++ b/kernel/dma/direct.c > @@ -356,8 +356,12 @@ struct page *dma_direct_alloc_pages(struct device *dev, size_t size, > struct page *page; > void *ret; > > - if (force_dma_unencrypted(dev) && dma_direct_use_pool(dev, gfp)) > - return dma_direct_alloc_from_pool(dev, size, dma_handle, gfp); > + if (force_dma_unencrypted(dev) && dma_direct_use_pool(dev, gfp)) { > + ret = dma_direct_alloc_from_pool(dev, size, dma_handle, gfp); > + if (!ret) > + return NULL; > + return dma_direct_to_page(dev, *dma_handle); > + } > > page = __dma_direct_alloc_pages(dev, size, gfp, false); > if (!page) Best regards -- Marek Szyprowski, PhD Samsung R&D Institute Poland ^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-08-14 7:11 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <CGME20260814063037eucas1p13a146c907bec7280bb28d9e8ef009eae@eucas1p1.samsung.com>
2026-08-14 6:30 ` [PATCH] dma-direct: fix type mismatch in dma_direct_alloc_pages yangge1116
2026-08-14 7:11 ` Marek Szyprowski
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®