tcp: fix tcp_probe_timer() for TCP_USER_TIMEOUT
authorEric Dumazet <edumazet@google.com>
Sun, 21 May 2017 17:39:00 +0000 (10:39 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sun, 21 May 2017 17:50:34 +0000 (13:50 -0400)
TCP_USER_TIMEOUT is still converted to jiffies value in
icsk_user_timeout

So we need to make a conversion for the cases HZ != 1000

Fixes: 9a568de4818d ("tcp: switch TCP TS option (RFC 7323) to 1ms clock")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Acked-by: Soheil Hassas Yeganeh <soheil@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/tcp_timer.c

index 27a667b..c4a35ba 100644 (file)
@@ -341,7 +341,8 @@ static void tcp_probe_timer(struct sock *sk)
        if (!start_ts)
                tcp_send_head(sk)->skb_mstamp = tp->tcp_mstamp;
        else if (icsk->icsk_user_timeout &&
-                (s32)(tcp_time_stamp(tp) - start_ts) > icsk->icsk_user_timeout)
+                (s32)(tcp_time_stamp(tp) - start_ts) >
+                jiffies_to_msecs(icsk->icsk_user_timeout))
                goto abort;
 
        max_probes = sock_net(sk)->ipv4.sysctl_tcp_retries2;