Commit 343b29f3 authored by Achiad Shochat's avatar Achiad Shochat Committed by David S. Miller

net/mlx5e: Priv state flag not rolled-back upon netdev open error

The private mlx5 state flag that indicates that the netdev is
opened is set at the beginning of the netdev open flow.
In case an error occured later in the mlx5 netdev open flow, this
flag was not cleared, remaining set although the actual set is
closed.
Signed-off-by: default avatarAchiad Shochat <achiad@mellanox.com>
Signed-off-by: default avatarOr Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 4de61ba2
...@@ -1367,13 +1367,13 @@ int mlx5e_open_locked(struct net_device *netdev) ...@@ -1367,13 +1367,13 @@ int mlx5e_open_locked(struct net_device *netdev)
err = mlx5e_set_dev_port_mtu(netdev); err = mlx5e_set_dev_port_mtu(netdev);
if (err) if (err)
return err; goto err_clear_state_opened_flag;
err = mlx5e_open_channels(priv); err = mlx5e_open_channels(priv);
if (err) { if (err) {
netdev_err(netdev, "%s: mlx5e_open_channels failed, %d\n", netdev_err(netdev, "%s: mlx5e_open_channels failed, %d\n",
__func__, err); __func__, err);
return err; goto err_clear_state_opened_flag;
} }
mlx5e_update_carrier(priv); mlx5e_update_carrier(priv);
...@@ -1382,6 +1382,10 @@ int mlx5e_open_locked(struct net_device *netdev) ...@@ -1382,6 +1382,10 @@ int mlx5e_open_locked(struct net_device *netdev)
schedule_delayed_work(&priv->update_stats_work, 0); schedule_delayed_work(&priv->update_stats_work, 0);
return 0; return 0;
err_clear_state_opened_flag:
clear_bit(MLX5E_STATE_OPENED, &priv->state);
return err;
} }
static int mlx5e_open(struct net_device *netdev) static int mlx5e_open(struct net_device *netdev)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment