return err;
 }
 
+/**
+ * ice_nway_reset - restart autonegotiation
+ * @netdev: network interface device structure
+ */
+static int ice_nway_reset(struct net_device *netdev)
+{
+       struct ice_netdev_priv *np = netdev_priv(netdev);
+       struct ice_vsi *vsi = np->vsi;
+       struct ice_port_info *pi;
+       enum ice_status status;
+
+       pi = vsi->port_info;
+       /* If VSI state is up, then restart autoneg with link up */
+       if (!test_bit(__ICE_DOWN, vsi->back->state))
+               status = ice_aq_set_link_restart_an(pi, true, NULL);
+       else
+               status = ice_aq_set_link_restart_an(pi, false, NULL);
+
+       if (status) {
+               netdev_info(netdev, "link restart failed, err %d aq_err %d\n",
+                           status, pi->hw->adminq.sq_last_status);
+               return -EIO;
+       }
+
+       return 0;
+}
+
 /**
  * ice_get_priv_flags - report device private flags
  * @netdev: network interface device structure
                        status = ice_cfg_lldp_mib_change(&pf->hw, true);
                        if (status)
                                dev_dbg(dev, "Fail to enable MIB change events\n");
+
+                       ice_nway_reset(netdev);
                }
        }
        if (test_bit(ICE_FLAG_LEGACY_RX, change_flags)) {
        return err;
 }
 
-static int ice_nway_reset(struct net_device *netdev)
-{
-       /* restart autonegotiation */
-       struct ice_netdev_priv *np = netdev_priv(netdev);
-       struct ice_vsi *vsi = np->vsi;
-       struct ice_port_info *pi;
-       enum ice_status status;
-
-       pi = vsi->port_info;
-       /* If VSI state is up, then restart autoneg with link up */
-       if (!test_bit(__ICE_DOWN, vsi->back->state))
-               status = ice_aq_set_link_restart_an(pi, true, NULL);
-       else
-               status = ice_aq_set_link_restart_an(pi, false, NULL);
-
-       if (status) {
-               netdev_info(netdev, "link restart failed, err %d aq_err %d\n",
-                           status, pi->hw->adminq.sq_last_status);
-               return -EIO;
-       }
-
-       return 0;
-}
-
 /**
  * ice_get_pauseparam - Get Flow Control status
  * @netdev: network interface device structure