--- x/net/core/link_watch.c +++ y/net/core/link_watch.c @@ -230,6 +230,10 @@ static void __linkwatch_run_queue(int ur dev = list_first_entry(&wrk, struct net_device, link_watch_list); list_del_init(&dev->link_watch_list); + if (dev->reg_state == NETREG_UNREGISTERING || + dev->reg_state == NETREG_UNREGISTERED) + continue; + if (!netif_device_present(dev) || (urgent_only && !linkwatch_urgent_event(dev))) { list_add_tail(&dev->link_watch_list, &lweventlist);