int mlx5_nic_vport_enable_roce(struct mlx5_core_dev *mdev) { int err = 0; mutex_lock(&mlx5_roce_en_lock); if (!mdev->roce.roce_en) err = mlx5_nic_vport_update_roce_state(mdev, MLX5_VPORT_ROCE_ENABLED); if (!err) mdev->roce.roce_en++; mutex_unlock(&mlx5_roce_en_lock); return err; }
int mlx5_nic_vport_disable_roce(struct mlx5_core_dev *mdev) { int err = 0; mutex_lock(&mlx5_roce_en_lock); if (mdev->roce.roce_en) { mdev->roce.roce_en--; if (mdev->roce.roce_en == 0) err = mlx5_nic_vport_update_roce_state(mdev, MLX5_VPORT_ROCE_DISABLED); if (err) mdev->roce.roce_en++; } mutex_unlock(&mlx5_roce_en_lock); return err; }
int mlx5_nic_vport_disable_roce(struct mlx5_core_dev *mdev) { return mlx5_nic_vport_update_roce_state(mdev, MLX5_VPORT_ROCE_DISABLED); }