.. | .. |
---|
618 | 618 | priv = container_of(health, struct mlx5_priv, health); |
---|
619 | 619 | dev = container_of(priv, struct mlx5_core_dev, priv); |
---|
620 | 620 | |
---|
| 621 | + mutex_lock(&dev->intf_state_mutex); |
---|
| 622 | + if (test_bit(MLX5_DROP_NEW_HEALTH_WORK, &health->flags)) { |
---|
| 623 | + mlx5_core_err(dev, "health works are not permitted at this stage\n"); |
---|
| 624 | + mutex_unlock(&dev->intf_state_mutex); |
---|
| 625 | + return; |
---|
| 626 | + } |
---|
| 627 | + mutex_unlock(&dev->intf_state_mutex); |
---|
621 | 628 | enter_error_state(dev, false); |
---|
622 | 629 | if (IS_ERR_OR_NULL(health->fw_fatal_reporter)) { |
---|
623 | 630 | if (mlx5_health_try_recover(dev)) |
---|