]> git.baikalelectronics.ru Git - kernel.git/commit
net/mlx5e: Fix interoperability between XSK and ICOSQ recovery flow
authorMaxim Mikityanskiy <maximmi@nvidia.com>
Tue, 12 Oct 2021 16:40:09 +0000 (19:40 +0300)
committerSaeed Mahameed <saeedm@nvidia.com>
Thu, 23 Dec 2021 04:38:48 +0000 (20:38 -0800)
commitba8209ea0041ae31d35a0b73cc95b89053e3531d
tree97eeaca989cf4b39708979c5c77ed07695fc44a0
parent05080530dab1bb1ad2eecdc614345b6161018eef
net/mlx5e: Fix interoperability between XSK and ICOSQ recovery flow

Both regular RQ and XSKRQ use the same ICOSQ for UMRs. When doing
recovery for the ICOSQ, don't forget to deactivate XSKRQ.

XSK can be opened and closed while channels are active, so a new mutex
prevents the ICOSQ recovery from running at the same time. The ICOSQ
recovery deactivates and reactivates XSKRQ, so any parallel change in
XSK state would break consistency. As the regular RQ is running, it's
not enough to just flush the recovery work, because it can be
rescheduled.

Fixes: 90e991dc02c6 ("net/mlx5e: Report and recover from CQE error on ICOSQ")
Signed-off-by: Maxim Mikityanskiy <maximmi@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
drivers/net/ethernet/mellanox/mlx5/core/en.h
drivers/net/ethernet/mellanox/mlx5/core/en/health.h
drivers/net/ethernet/mellanox/mlx5/core/en/reporter_rx.c
drivers/net/ethernet/mellanox/mlx5/core/en/xsk/setup.c
drivers/net/ethernet/mellanox/mlx5/core/en_main.c