aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4
diff options
context:
space:
mode:
Diffstat (limited to 'net/ipv4')
-rw-r--r--net/ipv4/route.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/net/ipv4/route.c b/net/ipv4/route.c
index 155138d8ec8b..511f4a75149c 100644
--- a/net/ipv4/route.c
+++ b/net/ipv4/route.c
@@ -2845,7 +2845,7 @@ static int rt_fill_info(struct net *net,
2845 struct rtable *rt = skb_rtable(skb); 2845 struct rtable *rt = skb_rtable(skb);
2846 struct rtmsg *r; 2846 struct rtmsg *r;
2847 struct nlmsghdr *nlh; 2847 struct nlmsghdr *nlh;
2848 long expires = 0; 2848 unsigned long expires = 0;
2849 const struct inet_peer *peer = rt->peer; 2849 const struct inet_peer *peer = rt->peer;
2850 u32 id = 0, ts = 0, tsage = 0, error; 2850 u32 id = 0, ts = 0, tsage = 0, error;
2851 2851
@@ -2902,8 +2902,12 @@ static int rt_fill_info(struct net *net,
2902 tsage = get_seconds() - peer->tcp_ts_stamp; 2902 tsage = get_seconds() - peer->tcp_ts_stamp;
2903 } 2903 }
2904 expires = ACCESS_ONCE(peer->pmtu_expires); 2904 expires = ACCESS_ONCE(peer->pmtu_expires);
2905 if (expires) 2905 if (expires) {
2906 expires -= jiffies; 2906 if (time_before(jiffies, expires))
2907 expires -= jiffies;
2908 else
2909 expires = 0;
2910 }
2907 } 2911 }
2908 2912
2909 if (rt_is_input_route(rt)) { 2913 if (rt_is_input_route(rt)) {