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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.