net/mlx5: HWS, don't destroy more bwc queue locks than allocated
authorCosmin Ratiu <cratiu@nvidia.com>
Tue, 15 Oct 2024 09:32:03 +0000 (12:32 +0300)
committerPaolo Abeni <pabeni@redhat.com>
Thu, 17 Oct 2024 10:14:07 +0000 (12:14 +0200)
commit45bcbd49224ac5aec5e1239de9060e431ca2acd9
tree53a9625a133fa0fe3891bb90ff5557e25ab03d47
parent5aa2184e29081665f915594bc6de9b7fee6e4883
net/mlx5: HWS, don't destroy more bwc queue locks than allocated

hws_send_queues_bwc_locks_destroy destroyed more queue locks than
allocated, leading to memory corruption (occasionally) and warnings such
as DEBUG_LOCKS_WARN_ON(mutex_is_locked(lock)) in __mutex_destroy because
sometimes, the 'mutex' being destroyed was random memory.
The severity of this problem is proportional to the number of queues
configured because the code overreaches beyond the end of the
bwc_send_queue_locks array by 2x its length.

Fix that by using the correct number of bwc queues.

Fixes: 2ca62599aa0b ("net/mlx5: HWS, added send engine and context handling")
Signed-off-by: Cosmin Ratiu <cratiu@nvidia.com>
Signed-off-by: Yevgeny Kliteynik <kliteyn@nvidia.com>
Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/mlx5hws_send.c