aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorJens Rosenboom <me@jayr.de>2009-06-25 00:55:50 -0400
committerDavid S. Miller <davem@davemloft.net>2009-06-25 23:03:50 -0400
commita1faa69810b2af562b70b2a71c116c7d03575dd3 (patch)
tree074a4b79742f1749eafc5e539f3241e5d57d8236 /net
parent1ac530b3553e0b4dc1e18a32bed57cfa84cd57cb (diff)
ipv6: avoid wraparound for expired preferred lifetime
Avoid showing wrong high values when the preferred lifetime of an address is expired. Signed-off-by: Jens Rosenboom <me@jayr.de> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r--net/ipv6/addrconf.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
index 8c1e86afbbf5..3883b4036a74 100644
--- a/net/ipv6/addrconf.c
+++ b/net/ipv6/addrconf.c
@@ -3362,7 +3362,10 @@ static int inet6_fill_ifaddr(struct sk_buff *skb, struct inet6_ifaddr *ifa,
3362 valid = ifa->valid_lft; 3362 valid = ifa->valid_lft;
3363 if (preferred != INFINITY_LIFE_TIME) { 3363 if (preferred != INFINITY_LIFE_TIME) {
3364 long tval = (jiffies - ifa->tstamp)/HZ; 3364 long tval = (jiffies - ifa->tstamp)/HZ;
3365 preferred -= tval; 3365 if (preferred > tval)
3366 preferred -= tval;
3367 else
3368 preferred = 0;
3366 if (valid != INFINITY_LIFE_TIME) 3369 if (valid != INFINITY_LIFE_TIME)
3367 valid -= tval; 3370 valid -= tval;
3368 } 3371 }