[PATCH] RDMA/bnxt_re: fix dma_free_coherent() pointer

Thomas Fourier posted 1 patch 1 month, 1 week ago
drivers/infiniband/hw/bnxt_re/qplib_res.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
[PATCH] RDMA/bnxt_re: fix dma_free_coherent() pointer
Posted by Thomas Fourier 1 month, 1 week ago
The dma_alloc_coherent() allocates a dma-mapped buffer, pbl->pg_arr[i].
The dma_free_coherent() should pass the same buffer to
dma_free_coherent() and not page-aligned.

Fixes: 1ac5a4047975 ("RDMA/bnxt_re: Add bnxt_re RoCE driver")
Cc: <stable@vger.kernel.org>
Signed-off-by: Thomas Fourier <fourier.thomas@gmail.com>
---
 drivers/infiniband/hw/bnxt_re/qplib_res.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/infiniband/hw/bnxt_re/qplib_res.c b/drivers/infiniband/hw/bnxt_re/qplib_res.c
index 875d7b52c06a..866dc22a2ab8 100644
--- a/drivers/infiniband/hw/bnxt_re/qplib_res.c
+++ b/drivers/infiniband/hw/bnxt_re/qplib_res.c
@@ -64,9 +64,7 @@ static void __free_pbl(struct bnxt_qplib_res *res, struct bnxt_qplib_pbl *pbl,
 		for (i = 0; i < pbl->pg_count; i++) {
 			if (pbl->pg_arr[i])
 				dma_free_coherent(&pdev->dev, pbl->pg_size,
-						  (void *)((unsigned long)
-						   pbl->pg_arr[i] &
-						  PAGE_MASK),
+						  pbl->pg_arr[i],
 						  pbl->pg_map_arr[i]);
 			else
 				dev_warn(&pdev->dev,
-- 
2.43.0
Re: [PATCH] RDMA/bnxt_re: fix dma_free_coherent() pointer
Posted by Leon Romanovsky 1 month, 1 week ago
On Tue, 30 Dec 2025 09:51:21 +0100, Thomas Fourier wrote:
> The dma_alloc_coherent() allocates a dma-mapped buffer, pbl->pg_arr[i].
> The dma_free_coherent() should pass the same buffer to
> dma_free_coherent() and not page-aligned.
> 
> 

Applied, thanks!

[1/1] RDMA/bnxt_re: fix dma_free_coherent() pointer
      https://git.kernel.org/rdma/rdma/c/fcd431a9627f27

Best regards,
-- 
Leon Romanovsky <leon@kernel.org>