Commit 96d10d5b authored by Hangbin Liu's avatar Hangbin Liu Committed by David S. Miller
Browse files

neigh: fix ARP retransmit timer guard



In commit 19e16d22 ("neigh: support smaller retrans_time settting")
we add more accurate control for ARP and NS. But for ARP I forgot to
update the latest guard in neigh_timer_handler(), then the next
retransmit would be reset to jiffies + HZ/2 if we set the retrans_time
less than 500ms. Fix it by setting the time_before() check to HZ/100.

IPv6 does not have this issue.

Reported-by: default avatarJianwen Ji <jiji@redhat.com>
Fixes: 19e16d22 ("neigh: support smaller retrans_time settting")
Signed-off-by: default avatarHangbin Liu <liuhangbin@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent f2b122d3
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1082,8 +1082,8 @@ static void neigh_timer_handler(struct timer_list *t)
	}

	if (neigh->nud_state & NUD_IN_TIMER) {
		if (time_before(next, jiffies + HZ/2))
			next = jiffies + HZ/2;
		if (time_before(next, jiffies + HZ/100))
			next = jiffies + HZ/100;
		if (!mod_timer(&neigh->timer, next))
			neigh_hold(neigh);
	}