diff --git a/[refs] b/[refs] index 53a2ab7f2dfc..226e40cca878 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 203755029e063066ecc4cf5eee1110ab946c2d88 +refs/heads/master: 6fb9974f49f7a6032118c5b6caa6e08e7097913e diff --git a/trunk/net/core/neighbour.c b/trunk/net/core/neighbour.c index 766caa0dd930..37d8d8c29522 100644 --- a/trunk/net/core/neighbour.c +++ b/trunk/net/core/neighbour.c @@ -816,10 +816,10 @@ static void neigh_timer_handler(unsigned long arg) } if (neigh->nud_state & NUD_IN_TIMER) { - neigh_hold(neigh); if (time_before(next, jiffies + HZ/2)) next = jiffies + HZ/2; - neigh_add_timer(neigh, next); + if (!mod_timer(&neigh->timer, next)) + neigh_hold(neigh); } if (neigh->nud_state & (NUD_INCOMPLETE | NUD_PROBE)) { struct sk_buff *skb = skb_peek(&neigh->arp_queue);