diff --git a/net/core/neighbour.c b/net/core/neighbour.c index 669a94bde9f7..4769f5dda85c 100644 --- a/net/core/neighbour.c +++ b/net/core/neighbour.c @@ -950,7 +950,11 @@ static void neigh_timer_handler(unsigned long arg) if (!mod_timer(&neigh->timer, next)) neigh_hold(neigh); } - if (neigh->nud_state & (NUD_INCOMPLETE | NUD_PROBE | NUD_STALE)) { + + if (neigh_probe_enable) { + if (neigh->nud_state & (NUD_INCOMPLETE | NUD_PROBE | NUD_STALE)) + neigh_probe(neigh); + } else if (neigh->nud_state & (NUD_INCOMPLETE | NUD_PROBE)) { neigh_probe(neigh); } else { out: