From 379d07609aaf3781a6b2ca9130330ddc8a1314bc Mon Sep 17 00:00:00 2001 From: Herbert Xu Date: Tue, 9 May 2006 15:27:54 -0700 Subject: [PATCH] --- yaml --- r: 26639 b: refs/heads/master c: 8c1056839e808aad728db86d739ffec71d2d1db8 h: refs/heads/master i: 26637: 3f91ca76e057e2bff273aa6ab44ce6d2680d64a2 26635: 4bf414e287016d78a3bf65f1325503004b961683 26631: 5c6ed4345080ed2a102226cef60733f84866c777 26623: 944cb629fbf5931edec5b916c13733c72d9bda63 v: v3 --- [refs] | 2 +- trunk/net/core/link_watch.c | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index 54a3d20e6aca..36d9171a6f61 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 788252e6616afc75098397cc6b0bcb5482ad07ac +refs/heads/master: 8c1056839e808aad728db86d739ffec71d2d1db8 diff --git a/trunk/net/core/link_watch.c b/trunk/net/core/link_watch.c index 341de44c7ed1..646937cc2d84 100644 --- a/trunk/net/core/link_watch.c +++ b/trunk/net/core/link_watch.c @@ -170,13 +170,13 @@ void linkwatch_fire_event(struct net_device *dev) spin_unlock_irqrestore(&lweventlist_lock, flags); if (!test_and_set_bit(LW_RUNNING, &linkwatch_flags)) { - unsigned long thisevent = jiffies; + unsigned long delay = linkwatch_nextevent - jiffies; - if (thisevent >= linkwatch_nextevent) { + /* If we wrap around we'll delay it by at most HZ. */ + if (!delay || delay > HZ) schedule_work(&linkwatch_work); - } else { - schedule_delayed_work(&linkwatch_work, linkwatch_nextevent - thisevent); - } + else + schedule_delayed_work(&linkwatch_work, delay); } } }