/* The link configuration settings */
        struct phylink_link_state link_config;
+
+       /* The current settings */
+       phy_interface_t cur_interface;
+
        struct gpio_desc *link_gpio;
        struct timer_list link_poll;
        void (*get_fixed_state)(struct net_device *dev,
                if (!link_state.link) {
                        netif_carrier_off(ndev);
                        pl->ops->mac_link_down(ndev, pl->link_an_mode,
-                                              pl->phy_state.interface);
+                                              pl->cur_interface);
                        netdev_info(ndev, "Link is Down\n");
                } else {
+                       pl->cur_interface = link_state.interface;
                        pl->ops->mac_link_up(ndev, pl->link_an_mode,
-                                            pl->phy_state.interface,
-                                            pl->phydev);
+                                            pl->cur_interface, pl->phydev);
 
                        netif_carrier_on(ndev);