diff --git a/features/FEATURE_LWIP/lwip-interface/emac_lwip.c b/features/FEATURE_LWIP/lwip-interface/emac_lwip.c index f79be5d471..f189bb2a98 100644 --- a/features/FEATURE_LWIP/lwip-interface/emac_lwip.c +++ b/features/FEATURE_LWIP/lwip-interface/emac_lwip.c @@ -63,10 +63,13 @@ err_t emac_lwip_if_init(struct netif *netif) mac->ops.set_link_input_cb(mac, emac_lwip_input, netif); mac->ops.set_link_state_cb(mac, emac_lwip_state_change, netif); - netif->hwaddr_len = mac->ops.get_hwaddr_size(mac); - mac->ops.get_hwaddr(mac, netif->hwaddr); + if (!mac->ops.power_up(mac)) { + err = ERR_IF; + } netif->mtu = mac->ops.get_mtu_size(mac); + netif->hwaddr_len = mac->ops.get_hwaddr_size(mac); + mac->ops.get_hwaddr(mac, netif->hwaddr); /* Interface capabilities */ netif->flags = NETIF_FLAG_BROADCAST | NETIF_FLAG_ETHARP | NETIF_FLAG_ETHERNET | NETIF_FLAG_IGMP; @@ -79,10 +82,6 @@ err_t emac_lwip_if_init(struct netif *netif) netif->linkoutput = emac_lwip_low_level_output; - if (!mac->ops.power_up(mac)) { - err = ERR_IF; - } - return err; }