|
@@ -3781,14 +3781,7 @@ static void mlx5e_nic_enable(struct mlx5e_priv *priv)
|
|
|
|
|
|
mlx5_lag_add(mdev, netdev);
|
|
|
|
|
|
- if (mlx5e_vxlan_allowed(mdev)) {
|
|
|
- rtnl_lock();
|
|
|
- udp_tunnel_get_rx_info(netdev);
|
|
|
- rtnl_unlock();
|
|
|
- }
|
|
|
-
|
|
|
mlx5e_enable_async_events(priv);
|
|
|
- queue_work(priv->wq, &priv->set_rx_mode_work);
|
|
|
|
|
|
if (MLX5_CAP_GEN(mdev, vport_group_manager)) {
|
|
|
mlx5_query_nic_vport_mac_address(mdev, 0, rep.hw_id);
|
|
@@ -3798,6 +3791,18 @@ static void mlx5e_nic_enable(struct mlx5e_priv *priv)
|
|
|
rep.netdev = netdev;
|
|
|
mlx5_eswitch_register_vport_rep(esw, 0, &rep);
|
|
|
}
|
|
|
+
|
|
|
+ if (netdev->reg_state != NETREG_REGISTERED)
|
|
|
+ return;
|
|
|
+
|
|
|
+ /* Device already registered: sync netdev system state */
|
|
|
+ if (mlx5e_vxlan_allowed(mdev)) {
|
|
|
+ rtnl_lock();
|
|
|
+ udp_tunnel_get_rx_info(netdev);
|
|
|
+ rtnl_unlock();
|
|
|
+ }
|
|
|
+
|
|
|
+ queue_work(priv->wq, &priv->set_rx_mode_work);
|
|
|
}
|
|
|
|
|
|
static void mlx5e_nic_disable(struct mlx5e_priv *priv)
|