Re: [PATCH] dma-mapping: direct: fix missing mapping for THRU_HOST_BRIDGE segments

From: Marek Szyprowski

Date: Wed Jun 03 2026 - 12:28:33 EST


On 03.06.2026 03:37, lirongqing wrote:
> From: Li RongQing <lirongqing@xxxxxxxxx>
>
> In dma_direct_map_sg(), the case PCI_P2PDMA_MAP_THRU_HOST_BRIDGE
> incorrectly used 'break' instead of falling through to MAP_NONE.
> As a result, segments traversing the host bridge skipped the required
> dma_direct_map_phys() call entirely, leaving sg->dma_address
> uninitialized and leading to DMA failures. Fix this by using
> 'fallthrough;'.
>
> Fixes: a25e7962db0d79 ("PCI/P2PDMA: Refactor the p2pdma mapping helpers")
> Reviewed-by: Logan Gunthorpe <logang@xxxxxxxxxxxx>
> Signed-off-by: Li RongQing <lirongqing@xxxxxxxxx>

Applied to dma-mapping-fixes, thanks!


> ---
> kernel/dma/direct.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/kernel/dma/direct.c b/kernel/dma/direct.c
> index 583c592..4391b79 100644
> --- a/kernel/dma/direct.c
> +++ b/kernel/dma/direct.c
> @@ -476,7 +476,7 @@ int dma_direct_map_sg(struct device *dev, struct scatterlist *sgl, int nents,
> * must be mapped with CPU physical address and not PCI
> * bus addresses.
> */
> - break;
> + fallthrough;
> case PCI_P2PDMA_MAP_NONE:
> need_sync = true;
> sg->dma_address = dma_direct_map_phys(dev, sg_phys(sg),

Best regards
--
Marek Szyprowski, PhD
Samsung R&D Institute Poland