net/mlx4_core: Enable device recovery flow with SRIOV
[cascardo/linux.git] / drivers / net / ethernet / mellanox / mlx4 / intf.c
index 116895a..68d2bad 100644 (file)
@@ -138,13 +138,13 @@ int mlx4_register_device(struct mlx4_dev *dev)
 
        mutex_lock(&intf_mutex);
 
+       dev->persist->interface_state |= MLX4_INTERFACE_STATE_UP;
        list_add_tail(&priv->dev_list, &dev_list);
        list_for_each_entry(intf, &intf_list, list)
                mlx4_add_device(intf, priv);
 
        mutex_unlock(&intf_mutex);
-       if (!mlx4_is_slave(dev))
-               mlx4_start_catas_poll(dev);
+       mlx4_start_catas_poll(dev);
 
        return 0;
 }
@@ -154,14 +154,14 @@ void mlx4_unregister_device(struct mlx4_dev *dev)
        struct mlx4_priv *priv = mlx4_priv(dev);
        struct mlx4_interface *intf;
 
-       if (!mlx4_is_slave(dev))
-               mlx4_stop_catas_poll(dev);
+       mlx4_stop_catas_poll(dev);
        mutex_lock(&intf_mutex);
 
        list_for_each_entry(intf, &intf_list, list)
                mlx4_remove_device(intf, priv);
 
        list_del(&priv->dev_list);
+       dev->persist->interface_state &= ~MLX4_INTERFACE_STATE_UP;
 
        mutex_unlock(&intf_mutex);
 }