diff --git a/net/core/neighbour.c b/net/core/neighbour.c index 0a68045782d18a635d8071a8ce673f4d1dd95379..603b4036ff02d1280a7b94ebb1945eaae2eee271 100644 --- a/net/core/neighbour.c +++ b/net/core/neighbour.c @@ -935,6 +935,7 @@ static void neigh_timer_handler(unsigned long arg) neigh->nud_state = NUD_PROBE; neigh->updated = jiffies; atomic_set(&neigh->probes, 0); + notify = 1; next = now + neigh->parms->retrans_time; } } else { @@ -1162,6 +1163,8 @@ int neigh_update(struct neighbour *neigh, const u8 *lladdr, u8 new, if (new != old) { neigh_del_timer(neigh); + if (new & NUD_PROBE) + atomic_set(&neigh->probes, 0); if (new & NUD_IN_TIMER) neigh_add_timer(neigh, (jiffies + ((new & NUD_REACHABLE) ?