]> git.itanic.dy.fi Git - linux-stable/commit
net/mlx5: DR, Read ICM memory into dedicated buffer
authorYevgeny Kliteynik <kliteyn@nvidia.com>
Mon, 14 Nov 2022 22:33:25 +0000 (00:33 +0200)
committerSaeed Mahameed <saeedm@nvidia.com>
Fri, 14 Apr 2023 22:06:21 +0000 (15:06 -0700)
commit7d7c9453d679fe55d72d63bacb3b639cd963ebc0
treeede0f0d083bdbb947d4b95c68f5052dd5458cf8e
parent4605fc0a2b652070f45b0a17967c2cb11a9e5a6e
net/mlx5: DR, Read ICM memory into dedicated buffer

Instead of using the write buffer for reading we will use a dedicated
buffer only for reading ICM memory.
Due to the new support for args, we can have a case with pending_wc
being odd number, and with reading into the same write buffer, it is
possible to overwrite next write on the same slot.
For example:
pending_wc is 17 so the buffer for write is:
   | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
and we have requests as follows:
   r wr wr wr wr wr wr wr wr
Now, the first read will be written into the last write because we use
the same buffer for read and write, before it was written to the HW and
we will have a wrong data in the ICM area.

Signed-off-by: Erez Shitrit <erezsh@nvidia.com>
Signed-off-by: Yevgeny Kliteynik <kliteyn@nvidia.com>
Reviewed-by: Alex Vesker <valex@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c
drivers/net/ethernet/mellanox/mlx5/core/steering/dr_types.h