diff options
-rw-r--r-- | net/core/link_watch.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/net/core/link_watch.c b/net/core/link_watch.c index 357bd4ee4ba..c3519c6d1b1 100644 --- a/net/core/link_watch.c +++ b/net/core/link_watch.c @@ -78,8 +78,13 @@ static void rfc2863_policy(struct net_device *dev) static bool linkwatch_urgent_event(struct net_device *dev) { - return netif_running(dev) && netif_carrier_ok(dev) && - qdisc_tx_changing(dev); + if (!netif_running(dev)) + return false; + + if (dev->ifindex != dev->iflink) + return true; + + return netif_carrier_ok(dev) && qdisc_tx_changing(dev); } |