From c95f455de5179372e5f31f1010dd11f7994cde73 Mon Sep 17 00:00:00 2001 From: YOSHIFUJI Hideaki Date: Fri, 28 Jul 2006 18:12:11 +0900 Subject: [PATCH] --- yaml --- r: 33074 b: refs/heads/master c: 8f27ebb9823b7f6b7a67ab325b515f75ba51bf4c h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/net/ipv6/addrconf.c | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 82f20b713d85..cb8408133129 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 0778769d392b5b80410673f53e4f946574ebacf7 +refs/heads/master: 8f27ebb9823b7f6b7a67ab325b515f75ba51bf4c diff --git a/trunk/net/ipv6/addrconf.c b/trunk/net/ipv6/addrconf.c index c0641887bdeb..93a40a8ade88 100644 --- a/trunk/net/ipv6/addrconf.c +++ b/trunk/net/ipv6/addrconf.c @@ -2797,12 +2797,16 @@ static void addrconf_verify(unsigned long foo) ifp->idev->nd_parms->retrans_time / HZ; #endif - if (age >= ifp->valid_lft) { + if (ifp->valid_lft != INFINITY_LIFE_TIME && + age >= ifp->valid_lft) { spin_unlock(&ifp->lock); in6_ifa_hold(ifp); read_unlock(&addrconf_hash_lock); ipv6_del_addr(ifp); goto restart; + } else if (ifp->prefered_lft == INFINITY_LIFE_TIME) { + spin_unlock(&ifp->lock); + continue; } else if (age >= ifp->prefered_lft) { /* jiffies - ifp->tsamp > age >= ifp->prefered_lft */ int deprecate = 0;