Re: [PATCH v2 2/6] ntb: Use consistent DMA attributes when freeing DMA mappings
From: Dave Jiang
Date: Fri May 01 2026 - 13:00:48 EST
On 4/30/26 11:35 PM, Leon Romanovsky wrote:
> From: Leon Romanovsky <leonro@xxxxxxxxxx>
>
> The counterpart of dma_alloc_attrs() is dma_free_attrs(), which must
> receive the same DMA attributes used during allocation. The code
> previously used dma_free_coherent(), which does not accept or apply any
> DMA attributes.
>
> Fixes: 061a785a114f ("ntb: Force physically contiguous allocation of rx ring buffers")
> Signed-off-by: Leon Romanovsky <leonro@xxxxxxxxxx>
Reviewed-by: Dave Jiang <dave.jiang@xxxxxxxxx>
> ---
> drivers/ntb/ntb_transport.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/ntb/ntb_transport.c b/drivers/ntb/ntb_transport.c
> index 771eb7d9f4356..f59f926d4bfaa 100644
> --- a/drivers/ntb/ntb_transport.c
> +++ b/drivers/ntb/ntb_transport.c
> @@ -766,8 +766,8 @@ static void ntb_free_mw(struct ntb_transport_ctx *nt, int num_mw)
> return;
>
> ntb_mw_clear_trans(nt->ndev, PIDX, num_mw);
> - dma_free_coherent(dma_dev, mw->alloc_size,
> - mw->alloc_addr, mw->original_dma_addr);
> + dma_free_attrs(dma_dev, mw->alloc_size, mw->alloc_addr,
> + mw->original_dma_addr, DMA_ATTR_FORCE_CONTIGUOUS);
> mw->xlat_size = 0;
> mw->buff_size = 0;
> mw->alloc_size = 0;
> @@ -828,8 +828,8 @@ static int ntb_alloc_mw_buffer(struct ntb_transport_mw *mw,
> return 0;
>
> err:
> - dma_free_coherent(ntb_dev, mw->alloc_size, alloc_addr, dma_addr);
> -
> + dma_free_attrs(ntb_dev, mw->alloc_size, alloc_addr, dma_addr,
> + DMA_ATTR_FORCE_CONTIGUOUS);
> return rc;
> }
>
>