net/mlx5: Delete impossible dev->state checks
authorLeon Romanovsky <leonro@nvidia.com>
Sun, 1 Aug 2021 08:37:57 +0000 (11:37 +0300)
committerSaeed Mahameed <saeedm@nvidia.com>
Wed, 11 Aug 2021 18:14:30 +0000 (11:14 -0700)
New mlx5_core device structure is allocated through devlink_alloc
with\ kzalloc and that ensures that all fields are equal to zero
and it includes ->state too.

That means that checks of that field in the mlx5_init_one() is
completely redundant, because that function is called only once
in the begging of mlx5_core_dev lifetime.

PCI:
 .probe()
  -> probe_one()
   -> mlx5_init_one()

The recovery flow can't run at that time or before it, because relevant
work initialized later in mlx5_init_once().

Such initialization flow ensures that dev->state can't be
MLX5_DEVICE_STATE_UNINITIALIZED at all, so remove such impossible
checks.

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
drivers/net/ethernet/mellanox/mlx5/core/health.c
drivers/net/ethernet/mellanox/mlx5/core/main.c
include/linux/mlx5/driver.h

index 4a7de12..037e18d 100644 (file)
@@ -213,10 +213,6 @@ void mlx5_enter_error_state(struct mlx5_core_dev *dev, bool force)
        mutex_lock(&dev->intf_state_mutex);
        if (!err_detected && dev->state == MLX5_DEVICE_STATE_INTERNAL_ERROR)
                goto unlock;/* a previous error is still being handled */
-       if (dev->state == MLX5_DEVICE_STATE_UNINITIALIZED) {
-               dev->state = MLX5_DEVICE_STATE_INTERNAL_ERROR;
-               goto unlock;
-       }
 
        enter_error_state(dev, force);
 unlock:
index 6fe5603..1a65e74 100644 (file)
@@ -1249,11 +1249,6 @@ int mlx5_init_one(struct mlx5_core_dev *dev)
        int err = 0;
 
        mutex_lock(&dev->intf_state_mutex);
-       if (test_bit(MLX5_INTERFACE_STATE_UP, &dev->intf_state)) {
-               mlx5_core_warn(dev, "interface is up, NOP\n");
-               goto out;
-       }
-       /* remove any previous indication of internal error */
        dev->state = MLX5_DEVICE_STATE_UP;
 
        err = mlx5_function_setup(dev, true);
@@ -1294,7 +1289,6 @@ function_teardown:
        mlx5_function_teardown(dev, true);
 err_function:
        dev->state = MLX5_DEVICE_STATE_INTERNAL_ERROR;
-out:
        mutex_unlock(&dev->intf_state_mutex);
        return err;
 }
index 524051d..2b5c560 100644 (file)
@@ -623,8 +623,7 @@ struct mlx5_priv {
 };
 
 enum mlx5_device_state {
-       MLX5_DEVICE_STATE_UNINITIALIZED,
-       MLX5_DEVICE_STATE_UP,
+       MLX5_DEVICE_STATE_UP = 1,
        MLX5_DEVICE_STATE_INTERNAL_ERROR,
 };