|
@@ -1021,6 +1021,7 @@ int __neigh_event_send(struct neighbour *neigh, struct sk_buff *skb)
|
|
|
|
|
|
|
|
atomic_set(&neigh->probes,
|
|
atomic_set(&neigh->probes,
|
|
|
NEIGH_VAR(neigh->parms, UCAST_PROBES));
|
|
NEIGH_VAR(neigh->parms, UCAST_PROBES));
|
|
|
|
|
+ neigh_del_timer(neigh);
|
|
|
neigh->nud_state = NUD_INCOMPLETE;
|
|
neigh->nud_state = NUD_INCOMPLETE;
|
|
|
neigh->updated = now;
|
|
neigh->updated = now;
|
|
|
next = now + max(NEIGH_VAR(neigh->parms, RETRANS_TIME),
|
|
next = now + max(NEIGH_VAR(neigh->parms, RETRANS_TIME),
|
|
@@ -1037,6 +1038,7 @@ int __neigh_event_send(struct neighbour *neigh, struct sk_buff *skb)
|
|
|
}
|
|
}
|
|
|
} else if (neigh->nud_state & NUD_STALE) {
|
|
} else if (neigh->nud_state & NUD_STALE) {
|
|
|
neigh_dbg(2, "neigh %p is delayed\n", neigh);
|
|
neigh_dbg(2, "neigh %p is delayed\n", neigh);
|
|
|
|
|
+ neigh_del_timer(neigh);
|
|
|
neigh->nud_state = NUD_DELAY;
|
|
neigh->nud_state = NUD_DELAY;
|
|
|
neigh->updated = jiffies;
|
|
neigh->updated = jiffies;
|
|
|
neigh_add_timer(neigh, jiffies +
|
|
neigh_add_timer(neigh, jiffies +
|