netdev_driver: add carrier_on to xxx_ifup where carrier_on is absent

since the judgment for network card selection was changed from IS_UP to
IS_RUNNING, drivers that lack carrier_on need to add the carrier_on
operation; otherwise, network access issues will occur.

Signed-off-by: zhanghongyu <zhanghongyu@xiaomi.com>
This commit is contained in:
zhanghongyu 2026-01-28 22:01:27 +08:00 committed by Donny(董九柱)
parent 2ec1bff4e3
commit a7567677a8
53 changed files with 279 additions and 9 deletions

View file

@ -764,6 +764,8 @@ static int at32can_ifup(struct net_driver_s *dev)
priv->dev.d_buf = (uint8_t *)priv->txdesc;
netdev_carrier_on(dev);
return OK;
}
@ -795,6 +797,8 @@ static int at32can_ifdown(struct net_driver_s *dev)
at32can_reset(priv);
netdev_carrier_off(dev);
return OK;
}
@ -2481,4 +2485,3 @@ void arm_netinitialize(void)
#endif
}
#endif

View file

@ -2207,6 +2207,9 @@ static int at32_ifup(struct net_driver_s *dev)
up_enable_irq(AT32_IRQ_ETH);
at32_checksetup();
netdev_carrier_on(dev);
return OK;
}
@ -2261,6 +2264,9 @@ static int at32_ifdown(struct net_driver_s *dev)
priv->ifup = false;
leave_critical_section(flags);
netdev_carrier_off(dev);
return ret;
}

View file

@ -1758,6 +1758,9 @@ static int c5471_ifup(struct net_driver_s *dev)
priv->c_bifup = true;
up_enable_irq(C5471_IRQ_ETHER);
netdev_carrier_on(dev);
return OK;
}
@ -1810,6 +1813,9 @@ static int c5471_ifdown(struct net_driver_s *dev)
priv->c_bifup = false;
leave_critical_section(flags);
netdev_carrier_off(dev);
return OK;
}

View file

@ -2264,6 +2264,8 @@ static int gd32_ifup(struct net_driver_s *dev)
priv->ifup = true;
up_enable_irq(GD32_IRQ_ENET);
netdev_carrier_on(dev);
return OK;
}
@ -2319,6 +2321,9 @@ static int gd32_ifdown(struct net_driver_s *dev)
priv->ifup = false;
leave_critical_section(flags);
netdev_carrier_off(dev);
return ret;
}

View file

@ -1399,7 +1399,14 @@ static int imx_ifup(struct net_driver_s *dev)
{
/* The externally available ifup action includes resetting the phy */
return imx_ifup_action(dev, true);
int ret = imx_ifup_action(dev, true);
if (ret == OK)
{
netdev_carrier_on(dev);
}
return ret;
}
/****************************************************************************
@ -1451,6 +1458,9 @@ static int imx_ifdown(struct net_driver_s *dev)
priv->bifup = false;
leave_critical_section(flags);
netdev_carrier_off(dev);
return OK;
}

View file

@ -1371,6 +1371,8 @@ static int imxrt_ifup(struct net_driver_s *dev)
up_enable_irq(priv->config->irq);
netdev_carrier_on(dev);
return OK;
}
@ -1398,6 +1400,9 @@ static int imxrt_ifdown(struct net_driver_s *dev)
imxrt_reset(priv);
priv->bifup = false;
netdev_carrier_off(dev);
return OK;
}

View file

@ -1338,6 +1338,8 @@ static int kinetis_ifup(struct net_driver_s *dev)
up_enable_irq(priv->config->mb_irq);
netdev_carrier_on(dev);
return OK;
}
@ -1365,6 +1367,9 @@ static int kinetis_ifdown(struct net_driver_s *dev)
kinetis_reset(priv);
priv->bifup = false;
netdev_carrier_off(dev);
return OK;
}

View file

@ -1766,6 +1766,8 @@ static int lpc17can_ifup(struct net_driver_s *dev)
lpc17can_rxint(priv, true);
lpc17can_txint(priv, true);
netdev_carrier_on(dev);
return OK;
}
@ -1793,6 +1795,9 @@ static int lpc17can_ifdown(struct net_driver_s *dev)
lpc17can_reset(priv);
priv->bifup = false;
netdev_carrier_off(dev);
return OK;
}

View file

@ -1507,6 +1507,9 @@ static int lpc17_40_ifup(struct net_driver_s *dev)
#else
up_enable_irq(LPC17_40_IRQ_ETH);
#endif
netdev_carrier_on(dev);
return OK;
}
@ -1546,6 +1549,9 @@ static int lpc17_40_ifdown(struct net_driver_s *dev)
lpc17_40_ethreset(priv);
priv->lp_ifup = false;
leave_critical_section(flags);
netdev_carrier_off(dev);
return OK;
}

View file

@ -2097,6 +2097,9 @@ static int lpc43_ifup(struct net_driver_s *dev)
up_enable_irq(LPC43M4_IRQ_ETHERNET);
lpc43_checksetup();
netdev_carrier_on(dev);
return OK;
}
@ -2144,6 +2147,9 @@ static int lpc43_ifdown(struct net_driver_s *dev)
priv->ifup = false;
leave_critical_section(flags);
netdev_carrier_off(dev);
return OK;
}

View file

@ -1971,6 +1971,9 @@ static int lpc54_eth_ifup(struct net_driver_s *dev)
priv->eth_bifup = 1;
up_enable_irq(LPC54_IRQ_ETHERNET);
netdev_carrier_on(dev);
return OK;
}
@ -2048,6 +2051,9 @@ static int lpc54_eth_ifdown(struct net_driver_s *dev)
priv->eth_bifup = 0;
leave_critical_section(flags);
netdev_carrier_off(dev);
return OK;
}

View file

@ -349,4 +349,3 @@ int amebaz_netdev_register(struct amebaz_dev_s *priv)
dev->d_private = priv;
return netdev_register(dev, NET_LL_IEEE80211);
}

View file

@ -1269,7 +1269,13 @@ static int s32k1xx_ifup(struct net_driver_s *dev)
{
/* The externally available ifup action includes resetting the phy */
return s32k1xx_ifup_action(dev, true);
int ret = s32k1xx_ifup_action(dev, true);
if (ret == OK)
{
netdev_carrier_on(dev);
}
return ret;
}
/****************************************************************************
@ -1321,6 +1327,9 @@ static int s32k1xx_ifdown(struct net_driver_s *dev)
priv->bifup = false;
leave_critical_section(flags);
netdev_carrier_off(dev);
return OK;
}

View file

@ -1323,6 +1323,8 @@ static int s32k1xx_ifup(struct net_driver_s *dev)
up_enable_irq(priv->config->mb_irq);
netdev_carrier_on(dev);
return OK;
}
@ -1350,6 +1352,9 @@ static int s32k1xx_ifdown(struct net_driver_s *dev)
s32k1xx_reset(priv);
priv->bifup = false;
netdev_carrier_off(dev);
return OK;
}

View file

@ -2033,7 +2033,14 @@ static int s32k3xx_ifup(struct net_driver_s *dev)
{
/* The externally available ifup action includes resetting the phy */
return s32k3xx_ifup_action(dev, true);
int ret = s32k3xx_ifup_action(dev, true);
if (ret == OK)
{
netdev_carrier_on(dev);
}
return ret;
}
/****************************************************************************
@ -2087,6 +2094,9 @@ static int s32k3xx_ifdown(struct net_driver_s *dev)
priv->bifup = false;
leave_critical_section(flags);
netdev_carrier_off(dev);
return OK;
}

View file

@ -1502,6 +1502,8 @@ static int s32k3xx_ifup(struct net_driver_s *dev)
s32k3xx_gpiowrite(priv->config->led_pin, priv->config->led_high);
}
netdev_carrier_on(dev);
return OK;
}
@ -1537,6 +1539,8 @@ static int s32k3xx_ifdown(struct net_driver_s *dev)
s32k3xx_gpiowrite(priv->config->led_pin, !priv->config->led_high);
}
netdev_carrier_off(dev);
return OK;
}

View file

@ -1718,6 +1718,9 @@ static int sam_ifup(struct net_driver_s *dev)
priv->ifup = true;
up_enable_irq(SAM_IRQ_EMAC);
netdev_carrier_on(dev);
return OK;
}
@ -1764,6 +1767,9 @@ static int sam_ifdown(struct net_driver_s *dev)
priv->ifup = false;
leave_critical_section(flags);
netdev_carrier_off(dev);
return OK;
}

View file

@ -1771,6 +1771,9 @@ static int sam_ifup(struct net_driver_s *dev)
priv->ifup = true;
up_enable_irq(SAM_IRQ_EMAC);
netdev_carrier_on(dev);
return OK;
}
@ -1817,6 +1820,9 @@ static int sam_ifdown(struct net_driver_s *dev)
priv->ifup = false;
leave_critical_section(flags);
netdev_carrier_off(dev);
return OK;
}

View file

@ -2124,6 +2124,9 @@ static int sam_ifup(struct net_driver_s *dev)
priv->ifup = true;
up_enable_irq(priv->attr->irq);
netdev_carrier_on(dev);
return OK;
}
@ -2170,6 +2173,9 @@ static int sam_ifdown(struct net_driver_s *dev)
priv->ifup = false;
leave_critical_section(flags);
netdev_carrier_off(dev);
return OK;
}

View file

@ -1761,6 +1761,9 @@ static int sam_ifup(struct net_driver_s *dev)
priv->ifup = true;
up_enable_irq(SAM_IRQ_GMAC);
netdev_carrier_on(dev);
return OK;
}
@ -1807,6 +1810,9 @@ static int sam_ifdown(struct net_driver_s *dev)
priv->ifup = false;
leave_critical_section(flags);
netdev_carrier_off(dev);
return OK;
}

View file

@ -1726,6 +1726,9 @@ static int sam_ifup(struct net_driver_s *dev)
priv->ifup = true;
up_enable_irq(SAM_IRQ_GMAL);
netdev_carrier_on(dev);
return OK;
}
@ -1772,6 +1775,9 @@ static int sam_ifdown(struct net_driver_s *dev)
priv->ifup = false;
leave_critical_section(flags);
netdev_carrier_off(dev);
return OK;
}

View file

@ -2577,6 +2577,9 @@ static int sam_ifup(struct net_driver_s *dev)
priv->ifup = true;
up_enable_irq(priv->attr->irq);
netdev_carrier_on(dev);
return OK;
}
@ -2623,6 +2626,9 @@ static int sam_ifdown(struct net_driver_s *dev)
priv->ifup = false;
leave_critical_section(flags);
netdev_carrier_off(dev);
return OK;
}

View file

@ -427,6 +427,8 @@ static int sam_lin_ifup(struct net_driver_s *dev)
UART_INT_LINID | UART_INT_LINERR);
}
netdev_carrier_on(dev);
return OK;
}
@ -470,6 +472,8 @@ static int sam_lin_ifdown(struct net_driver_s *dev)
}
}
netdev_carrier_off(dev);
return OK;
}

View file

@ -762,6 +762,8 @@ static int stm32can_ifup(struct net_driver_s *dev)
priv->dev.d_buf = (uint8_t *)priv->txdesc;
netdev_carrier_on(dev);
return OK;
}
@ -793,6 +795,8 @@ static int stm32can_ifdown(struct net_driver_s *dev)
stm32can_reset(priv);
netdev_carrier_off(dev);
return OK;
}
@ -2484,4 +2488,3 @@ void arm_netinitialize(void)
#endif
}
#endif

View file

@ -2975,6 +2975,8 @@ static int fdcan_ifup(struct net_driver_s *dev)
priv->dev.d_buf = (uint8_t *)priv->txdesc;
netdev_carrier_on(dev);
return OK;
}
@ -3007,6 +3009,8 @@ static int fdcan_ifdown(struct net_driver_s *dev)
fdcan_reset(priv);
netdev_carrier_off(dev);
return OK;
}
@ -3321,4 +3325,3 @@ void arm_netinitialize(void)
#endif
}
#endif

View file

@ -786,6 +786,8 @@ static int stm32can_ifup(struct net_driver_s *dev)
priv->dev.d_buf = (uint8_t *)priv->txdesc;
netdev_carrier_on(dev);
return OK;
}
@ -817,6 +819,8 @@ static int stm32can_ifdown(struct net_driver_s *dev)
stm32can_reset(priv);
netdev_carrier_off(dev);
return OK;
}

View file

@ -1805,6 +1805,8 @@ static int fdcan_ifup(struct net_driver_s *dev)
priv->bifup = true;
netdev_carrier_on(dev);
return OK;
}
@ -1833,6 +1835,8 @@ static int fdcan_ifdown(struct net_driver_s *dev)
priv->bifup = false;
netdev_carrier_off(dev);
return OK;
}
@ -3041,4 +3045,3 @@ static void fdcan_errint(struct fdcan_driver_s *priv, bool enable)
putreg32(regval, priv->base + STM32_FDCAN_IE_OFFSET);
}
#endif

View file

@ -2250,6 +2250,8 @@ static int tivacan_ifup(struct net_driver_s *dev)
priv->dev.d_buf = (uint8_t *)priv->tx_pool;
netdev_carrier_on(dev);
return OK;
}
@ -2279,6 +2281,8 @@ static int tivacan_ifdown(struct net_driver_s *dev)
tivacan_reset(dev);
netdev_carrier_off(dev);
return OK;
}

View file

@ -1260,6 +1260,9 @@ static int tiva_ifup(struct net_driver_s *dev)
priv->ld_bifup = true;
leave_critical_section(flags);
netdev_carrier_on(dev);
return OK;
}
@ -1342,6 +1345,9 @@ static int tiva_ifdown(struct net_driver_s *dev)
priv->ld_bifup = false;
leave_critical_section(flags);
netdev_carrier_off(dev);
return OK;
}

View file

@ -2223,6 +2223,9 @@ static int tiva_ifup(struct net_driver_s *dev)
up_enable_irq(TIVA_IRQ_ETHCON);
tiva_checksetup();
netdev_carrier_on(dev);
return OK;
}
@ -2270,6 +2273,9 @@ static int tiva_ifdown(struct net_driver_s *dev)
priv->ifup = false;
spin_unlock_irqrestore(&priv->lock, flags);
netdev_carrier_off(dev);
return OK;
}

View file

@ -1441,7 +1441,14 @@ static int imx9_ifup(struct net_driver_s *dev)
{
/* The externally available ifup action includes resetting the phy */
return imx9_ifup_action(dev, true);
int ret = imx9_ifup_action(dev, true);
if (ret == OK)
{
netdev_carrier_on(dev);
}
return ret;
}
/****************************************************************************
@ -1494,6 +1501,8 @@ static int imx9_ifdown(struct net_driver_s *dev)
priv->bifup = false;
netdev_carrier_off(dev);
return OK;
}

View file

@ -1461,6 +1461,8 @@ static int imx9_ifup(struct net_driver_s *dev)
up_enable_irq(priv->irq);
up_enable_irq(priv->irq + 1);
netdev_carrier_on(dev);
return OK;
}
@ -1492,6 +1494,9 @@ static int imx9_ifdown(struct net_driver_s *dev)
imx9_reset(priv);
priv->bifup = false;
netdev_carrier_off(dev);
return OK;
}

View file

@ -448,6 +448,9 @@ static int emac_ifup(struct net_driver_s *dev)
priv->d_bifup = true;
up_enable_irq(CONFIG_HCS12_IRQ);
netdev_carrier_on(dev);
return OK;
}
@ -491,6 +494,9 @@ static int emac_ifdown(struct net_driver_s *dev)
priv->d_bifup = false;
leave_critical_section(flags);
netdev_carrier_off(dev);
return OK;
}

View file

@ -2191,6 +2191,9 @@ static int pic32mx_ifup(struct net_driver_s *dev)
#else
up_enable_irq(PIC32MX_IRQSRC_ETH);
#endif
netdev_carrier_on(dev);
return OK;
}
@ -2233,6 +2236,9 @@ static int pic32mx_ifdown(struct net_driver_s *dev)
pic32mx_ethreset(priv);
priv->pd_ifup = false;
leave_critical_section(flags);
netdev_carrier_off(dev);
return OK;
}

View file

@ -2340,6 +2340,8 @@ static int pic32mz_ifup(struct net_driver_s *dev)
up_enable_irq(PIC32MZ_IRQ_ETH);
#endif
netdev_carrier_on(dev);
return OK;
}
@ -2382,6 +2384,9 @@ static int pic32mz_ifdown(struct net_driver_s *dev)
pic32mz_ethreset(priv);
priv->pd_ifup = false;
leave_critical_section(flags);
netdev_carrier_off(dev);
return OK;
}

View file

@ -694,6 +694,9 @@ static int misoc_net_ifup(struct net_driver_s *dev)
ethmac_sram_writer_ev_enable_write(1);
leave_critical_section(flags);
netdev_carrier_on(dev);
return OK;
}
@ -740,6 +743,9 @@ static int misoc_net_ifdown(struct net_driver_s *dev)
priv->misoc_net_bifup = false;
leave_critical_section(flags);
netdev_carrier_off(dev);
return OK;
}

View file

@ -2073,6 +2073,9 @@ static int rx65n_ifup(struct net_driver_s *dev)
priv->prevlinkstatus = ETHER_LINKUP;
rx65n_checksetup();
netdev_carrier_on(dev);
return OK;
}
@ -2128,6 +2131,9 @@ static int rx65n_ifdown(struct net_driver_s *dev)
priv->prevlinkstatus = ETHER_LINKDOWN;
spin_unlock_irqrestore(&priv->lock, flags);
netdev_carrier_off(dev);
return ret;
}

View file

@ -859,6 +859,8 @@ static int litex_ifup(struct net_driver_s *dev)
litex_phydump(priv);
netdev_carrier_on(dev);
return OK;
}
@ -900,6 +902,8 @@ static int litex_ifdown(struct net_driver_s *dev)
litex_phydump(priv);
netdev_carrier_off(dev);
return OK;
}

View file

@ -1592,6 +1592,8 @@ static int mpfs_ifup(struct net_driver_s *dev)
mpfs_txtimeout_expiry, (wdparm_t)priv);
#endif
netdev_carrier_on(dev);
return OK;
}
@ -1652,6 +1654,9 @@ static int mpfs_ifdown(struct net_driver_s *dev)
priv->ifup = false;
spin_unlock_irqrestore(&priv->lock, flags);
netdev_carrier_off(dev);
return OK;
}

View file

@ -1760,6 +1760,8 @@ static int emac_ifup(struct net_driver_s *dev)
leave_critical_section(flags);
netdev_carrier_on(dev);
return 0;
}
@ -1818,6 +1820,8 @@ static int emac_ifdown(struct net_driver_s *dev)
leave_critical_section(flags);
netdev_carrier_off(dev);
return 0;
}

View file

@ -1990,6 +1990,8 @@ static int ez80emac_ifup(FAR struct net_driver_s *dev)
priv->bifup = true;
outp(EZ80_EMAC_IEN, EMAC_EIN_HANDLED); /* Enable all interrupts */
ret = OK;
netdev_carrier_on(dev);
}
return ret;
@ -2039,6 +2041,9 @@ static int ez80emac_ifdown(FAR struct net_driver_s *dev)
priv->bifup = false;
leave_critical_section(flags);
netdev_carrier_off(dev);
return OK;
}

View file

@ -1023,6 +1023,8 @@ static int kvaser_sock_ifup(FAR struct netdev_lowerhalf_s *dev)
kvaser_txint(priv, true);
kvaser_rxint(priv, true);
netdev_lower_carrier_on(dev);
return OK;
}
@ -1051,6 +1053,8 @@ static int kvaser_sock_ifdown(FAR struct netdev_lowerhalf_s *dev)
kvaser_sleep(priv);
netdev_lower_carrier_off(dev);
return OK;
}

View file

@ -1396,6 +1396,9 @@ static int dm9x_ifup(FAR struct net_driver_s *dev)
priv->dm_bifup = true;
up_enable_irq(CONFIG_DM9X_IRQ);
netdev_carrier_on(dev);
return OK;
}
@ -1442,6 +1445,9 @@ static int dm9x_ifdown(FAR struct net_driver_s *dev)
priv->dm_bifup = false;
leave_critical_section(flags);
netdev_carrier_off(dev);
return OK;
}

View file

@ -1936,6 +1936,7 @@ static int enc_ifup(struct net_driver_s *dev)
priv->ifstate = ENCSTATE_UP;
priv->lower->enable(priv->lower);
netdev_carrier_on(dev);
}
/* Un-lock the SPI bus */
@ -1991,6 +1992,8 @@ static int enc_ifdown(struct net_driver_s *dev)
priv->ifstate = ENCSTATE_DOWN;
leave_critical_section(flags);
netdev_carrier_off(dev);
/* Un-lock the SPI bus */
enc_unlock(priv);

View file

@ -1064,6 +1064,9 @@ static int ftmac100_ifup(struct net_driver_s *dev)
priv->ft_bifup = true;
up_enable_irq(CONFIG_FTMAC100_IRQ);
netdev_carrier_on(dev);
return OK;
}
@ -1111,6 +1114,9 @@ static int ftmac100_ifdown(struct net_driver_s *dev)
priv->ft_bifup = false;
leave_critical_section(flags);
netdev_carrier_off(dev);
return OK;
}

View file

@ -2189,6 +2189,7 @@ static int lan9250_ifup(FAR struct net_driver_s *dev)
(uint8_t)(mac_addr[0] >> 24), (uint8_t)(mac_addr[0] >> 16),
(uint8_t)(mac_addr[0] >> 8), (uint8_t)(mac_addr[0] >> 0));
#endif
netdev_carrier_on(dev);
}
/* Un-lock the SPI bus */
@ -2240,6 +2241,7 @@ static int lan9250_ifdown(FAR struct net_driver_s *dev)
IFF_CLR_UP(priv->dev.d_flags);
leave_critical_section(flags);
netdev_carrier_off(dev);
/* Un-lock the SPI bus */

View file

@ -657,6 +657,9 @@ static int skel_ifup(FAR struct net_driver_s *dev)
priv->sk_bifup = true;
up_enable_irq(CONFIG_NET_SKELETON_IRQ);
spin_unlock_irqrestore(&priv->sk_lock, flags);
netdev_carrier_on(dev);
return OK;
}
@ -701,6 +704,9 @@ static int skel_ifdown(FAR struct net_driver_s *dev)
priv->sk_bifup = false;
spin_unlock_irqrestore(&priv->sk_lock, flags);
netdev_carrier_off(dev);
return OK;
}

View file

@ -837,6 +837,8 @@ static int slip_ifup(FAR struct net_driver_s *dev)
self->bifup = true;
netdev_carrier_on(dev);
return OK;
}
@ -870,6 +872,8 @@ static int slip_ifdown(FAR struct net_driver_s *dev)
self->bifup = false;
netdev_carrier_off(dev);
return OK;
}

View file

@ -1772,6 +1772,8 @@ static int w5500_ifup(FAR struct net_driver_s *dev)
self->w_bifup = true;
self->lower->enable(self->lower, true);
netdev_carrier_on(dev);
return OK;
}
@ -1818,6 +1820,9 @@ static int w5500_ifdown(FAR struct net_driver_s *dev)
self->w_bifup = false;
leave_critical_section(flags);
netdev_carrier_off(dev);
return OK;
}

View file

@ -1164,6 +1164,7 @@ static int rndis_transmit(FAR struct rndis_dev_s *priv)
static int rndis_ifup(FAR struct net_driver_s *dev)
{
netdev_carrier_on(dev);
return OK;
}
@ -1177,6 +1178,7 @@ static int rndis_ifup(FAR struct net_driver_s *dev)
static int rndis_ifdown(FAR struct net_driver_s *dev)
{
netdev_carrier_off(dev);
return OK;
}

View file

@ -2347,6 +2347,9 @@ static int cdcmbim_ifup(FAR struct net_driver_s *dev)
}
priv->bifup = true;
netdev_lower_carrier_on(dev);
return OK;
}
@ -2379,6 +2382,9 @@ static int cdcmbim_ifdown(FAR struct net_driver_s *dev)
priv->bifup = false;
spin_unlock_irqrestore(&priv->spinlock, flags);
netdev_lower_carrier_off(dev);
return OK;
}

View file

@ -680,6 +680,7 @@ static int xbeenet_ifup(FAR struct net_driver_s *dev)
priv->xd_bifup = true;
ret = OK;
netdev_carrier_on(dev);
}
return ret;
@ -720,6 +721,9 @@ static int xbeenet_ifdown(FAR struct net_driver_s *dev)
priv->xd_bifup = false;
leave_critical_section(flags);
netdev_carrier_off(dev);
return OK;
}

View file

@ -1777,6 +1777,7 @@ static int spirit_ifup(FAR struct net_driver_s *dev)
/* We are up! */
priv->ifup = true;
netdev_carrier_on(dev);
}
return OK;
@ -1875,6 +1876,7 @@ static int spirit_ifdown(FAR struct net_driver_s *dev)
}
priv->ifup = false;
netdev_carrier_off(dev);
}
return ret;