net/mlx5: Fix health error state handling
authorShay Drory <shayd@nvidia.com>
Mon, 23 Nov 2020 06:39:10 +0000 (08:39 +0200)
committerSaeed Mahameed <saeedm@nvidia.com>
Fri, 12 Feb 2021 02:50:11 +0000 (18:50 -0800)
commit51d138c2610a236c1ed0059d034ee4c74f452b86
tree27c1a8285e29e88d74b84c98475b1bfb1f4518f2
parent65ba8594a238c20e458b3d2d39d91067cbffd0b1
net/mlx5: Fix health error state handling

Currently, when we discover a fatal error, we are queueing a work that
will wait for a lock in order to enter the device to error state.
Meanwhile, FW commands are still being processed, and gets timeouts.
This can block the driver for few minutes before the work will manage
to get the lock and enter to error state.

Setting the device to error state before queueing health work, in order
to avoid FW commands being processed while the work is waiting for the
lock.

Fixes: c1d4d2e92ad6 ("net/mlx5: Avoid calling sleeping function by the health poll thread")
Signed-off-by: Shay Drory <shayd@nvidia.com>
Reviewed-by: Moshe Shemesh <moshe@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
drivers/net/ethernet/mellanox/mlx5/core/health.c