|
@@ -1856,6 +1856,7 @@ static void mlx4_en_restart(struct work_struct *work)
|
|
|
|
|
|
en_dbg(DRV, priv, "Watchdog task called for port %d\n", priv->port);
|
|
en_dbg(DRV, priv, "Watchdog task called for port %d\n", priv->port);
|
|
|
|
|
|
|
|
+ rtnl_lock();
|
|
mutex_lock(&mdev->state_lock);
|
|
mutex_lock(&mdev->state_lock);
|
|
if (priv->port_up) {
|
|
if (priv->port_up) {
|
|
mlx4_en_stop_port(dev, 1);
|
|
mlx4_en_stop_port(dev, 1);
|
|
@@ -1863,6 +1864,7 @@ static void mlx4_en_restart(struct work_struct *work)
|
|
en_err(priv, "Failed restarting port %d\n", priv->port);
|
|
en_err(priv, "Failed restarting port %d\n", priv->port);
|
|
}
|
|
}
|
|
mutex_unlock(&mdev->state_lock);
|
|
mutex_unlock(&mdev->state_lock);
|
|
|
|
+ rtnl_unlock();
|
|
}
|
|
}
|
|
|
|
|
|
static void mlx4_en_clear_stats(struct net_device *dev)
|
|
static void mlx4_en_clear_stats(struct net_device *dev)
|