diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c index a93321db8fd7..05c250c483f0 100644 --- a/net/sched/sch_generic.c +++ b/net/sched/sch_generic.c @@ -609,6 +609,9 @@ static void netdev_watchdog_down(struct net_device *dev) */ void netif_carrier_on(struct net_device *dev) { + if (READ_ONCE(dev->proto_down)) + return; + if (test_and_clear_bit(__LINK_STATE_NOCARRIER, &dev->state)) { if (dev->reg_state == NETREG_UNINITIALIZED) return;