Re: [PATCH] dma-direct: fix type mismatch in dma_direct_alloc_pages
Marek Szyprowski <[email protected]>
| Newsgroups | dev.linux.lists.iommu,org.kernel.vger.linux-kernel,org.kernel.vger.stable |
|---|---|
| Message-ID | <[email protected]> |
On 14.08.2026 08:30, [email protected] wrote: > From: Ge Yang <[email protected]> > > 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 <[email protected]> > Cc: [email protected] This is a duplicate of the patch already applied to dma-mapping-for-next, see https://lore.kernel.org/r/[email protected] > --- > 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