|
Thomas Bogendoerfer |
4fbd0e |
From: Ilya Lesokhin <ilyal@mellanox.com>
|
|
Thomas Bogendoerfer |
4fbd0e |
Date: Mon, 28 Aug 2017 09:47:32 +0300
|
|
Thomas Bogendoerfer |
4fbd0e |
Subject: net/mlx5: FPGA, Call DMA unmap with the right size
|
|
Thomas Bogendoerfer |
4fbd0e |
Patch-mainline: v4.18-rc1
|
|
Thomas Bogendoerfer |
4fbd0e |
Git-commit: 36dd4902004c39b7e8a16a7cf1535faa7ecfa921
|
|
Thomas Bogendoerfer |
4fbd0e |
References: bsc#1046303 FATE#322944
|
|
Thomas Bogendoerfer |
4fbd0e |
|
|
Thomas Bogendoerfer |
4fbd0e |
When mlx5_fpga_conn_unmap_buf is called buf->sg[0].size
|
|
Thomas Bogendoerfer |
4fbd0e |
should equal the actual buffer size, not the message size.
|
|
Thomas Bogendoerfer |
4fbd0e |
Otherwise we will trigger the following dma debug warning
|
|
Thomas Bogendoerfer |
4fbd0e |
"DMA-API: device driver frees DMA memory with different size"
|
|
Thomas Bogendoerfer |
4fbd0e |
|
|
Thomas Bogendoerfer |
4fbd0e |
Fixes: 537a50574175 ('net/mlx5: FPGA, Add high-speed connection routines')
|
|
Thomas Bogendoerfer |
4fbd0e |
Signed-off-by: Ilya Lesokhin <ilyal@mellanox.com>
|
|
Thomas Bogendoerfer |
4fbd0e |
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
|
|
Thomas Bogendoerfer |
4fbd0e |
Acked-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
|
|
Thomas Bogendoerfer |
4fbd0e |
---
|
|
Thomas Bogendoerfer |
4fbd0e |
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c | 3 +--
|
|
Thomas Bogendoerfer |
4fbd0e |
1 file changed, 1 insertion(+), 2 deletions(-)
|
|
Thomas Bogendoerfer |
4fbd0e |
|
|
Thomas Bogendoerfer |
4fbd0e |
--- a/drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
|
|
Thomas Bogendoerfer |
4fbd0e |
+++ b/drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
|
|
Thomas Bogendoerfer |
4fbd0e |
@@ -255,8 +255,6 @@ static void mlx5_fpga_conn_rq_cqe(struct
|
|
Thomas Bogendoerfer |
4fbd0e |
ix = be16_to_cpu(cqe->wqe_counter) & (conn->qp.rq.size - 1);
|
|
Thomas Bogendoerfer |
4fbd0e |
buf = conn->qp.rq.bufs[ix];
|
|
Thomas Bogendoerfer |
4fbd0e |
conn->qp.rq.bufs[ix] = NULL;
|
|
Thomas Bogendoerfer |
4fbd0e |
- if (!status)
|
|
Thomas Bogendoerfer |
4fbd0e |
- buf->sg[0].size = be32_to_cpu(cqe->byte_cnt);
|
|
Thomas Bogendoerfer |
4fbd0e |
conn->qp.rq.cc++;
|
|
Thomas Bogendoerfer |
4fbd0e |
|
|
Thomas Bogendoerfer |
4fbd0e |
if (unlikely(status && (status != MLX5_CQE_SYNDROME_WR_FLUSH_ERR)))
|
|
Thomas Bogendoerfer |
4fbd0e |
@@ -274,6 +272,7 @@ static void mlx5_fpga_conn_rq_cqe(struct
|
|
Thomas Bogendoerfer |
4fbd0e |
return;
|
|
Thomas Bogendoerfer |
4fbd0e |
}
|
|
Thomas Bogendoerfer |
4fbd0e |
|
|
Thomas Bogendoerfer |
4fbd0e |
+ buf->sg[0].size = be32_to_cpu(cqe->byte_cnt);
|
|
Thomas Bogendoerfer |
4fbd0e |
mlx5_fpga_dbg(conn->fdev, "Message with %u bytes received successfully\n",
|
|
Thomas Bogendoerfer |
4fbd0e |
buf->sg[0].size);
|
|
Thomas Bogendoerfer |
4fbd0e |
conn->recv_cb(conn->cb_arg, buf);
|