All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wei Yongjun <yjwei@cn.fujitsu.com>
To: Jens Rosenboom <me@jayr.de>
Cc: "Ilpo Järvinen" <ilpo.jarvinen@helsinki.fi>,
	Netdev <netdev@vger.kernel.org>
Subject: Re: PATCH: ipv6: avoid wraparound for expired lifetimes
Date: Thu, 25 Jun 2009 17:25:17 +0800	[thread overview]
Message-ID: <4A43427D.3030109@cn.fujitsu.com> (raw)
In-Reply-To: <20090625090603.GP21357@jayr.de>

Jens Rosenboom wrote:
> On Thu, Jun 25, 2009 at 11:40:19AM +0300, Ilpo Järvinen wrote:
>   
>> On Thu, 25 Jun 2009, Jens Rosenboom wrote:
>>
>>     
>>> If the valid or preferred lifetime for an address expires, the kernel
>>> shows huge values for these due to a counter wrap,
>>>       
>> I suspect we have plenty of potentially counter-wrapped printouts all 
>> around the kernel. So you're fixing just a tip of the iceberg.
>>     
>
> So are you implying that because I don't fix all of them at once, I
> shouldn't bother to start at all?
>
> On Thu, 2009-06-25 at 01:42 -0700, David Miller wrote:
> ...
>   
>> Jens, don't even bother posting patches that fail to
>> build.
>>     
>
> Sorry for that, here is the correct version.
>
> --- linux-2.6.30.orig/net/ipv6/addrconf.c	2009-06-10 05:05:27.000000000 +0200
> +++ linux-2.6.30/net/ipv6/addrconf.c	2009-06-25 10:52:27.000000000 +0200
> @@ -3361,9 +3361,18 @@
>  		valid = ifa->valid_lft;
>  		if (preferred != INFINITY_LIFE_TIME) {
>  			long tval = (jiffies - ifa->tstamp)/HZ;
> -			preferred -= tval;
> -			if (valid != INFINITY_LIFE_TIME)
> -				valid -= tval;
> +			if (preferred > tval) {
> +				preferred -= tval;
> +			} else {
> +				preferred = 0;
> +			}
> +			if (valid != INFINITY_LIFE_TIME) {
> +				if (valid > tval) {
> +					valid -= tval;
> +				} else {
> +					valid = 0;
> +				}
> +			}
>  		}
>  	} else {
>  		preferred = INFINITY_LIFE_TIME;
>
>   

checkpatch tell me the following errors:

# ./scripts/checkpatch.pl /root/PATCH\ \ ipv6\ \ avoid\ wraparound\ for\ expired\ lifetimes.eml

WARNING: braces {} are not necessary for any arm of this statement
#90: FILE: net/ipv6/addrconf.c:3364:
+                       if (preferred > tval) {
[...]
+                       } else {
[...]

ERROR: spaces required around that '-=' (ctx:WxV)
#91: FILE: net/ipv6/addrconf.c:3365:
+                               preferred -=3D tval;
                                          ^

ERROR: spaces required around that '=' (ctx:WxV)
#93: FILE: net/ipv6/addrconf.c:3367:
+                               preferred =3D 0;
                                          ^

ERROR: spaces required around that '!=' (ctx:WxV)
#95: FILE: net/ipv6/addrconf.c:3369:
+                       if (valid !=3D INFINITY_LIFE_TIME) {
                                  ^

ERROR: spaces required around that '-=' (ctx:WxV)
#97: FILE: net/ipv6/addrconf.c:3371:
+                                       valid -=3D tval;
                                              ^

ERROR: spaces required around that '=' (ctx:WxV)
#99: FILE: net/ipv6/addrconf.c:3373:
+                                       valid =3D 0;
                                              ^

ERROR: Missing Signed-off-by: line(s)

total: 6 errors, 1 warnings, 21 lines checked

/root/PATCH  ipv6  avoid wraparound for expired lifetimes.eml has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.


> And to show you where this appears:
>
> Output with plain 2.6.30
>
> # ip -6 addr show dev eth0
> 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
>     inet6 2001:db8::202:a5ff:fee8:20be/64 scope global dynamic 
>        valid_lft 870sec preferred_lft 7sec
>     inet6 fe80::202:a5ff:fee8:20be/64 scope link 
>        valid_lft forever preferred_lft forever
> # sleep 30
> # ip -6 addr show dev eth0
> 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
>     inet6 2001:db8::202:a5ff:fee8:20be/64 scope global deprecated dynamic 
>        valid_lft 840sec preferred_lft 4294967266sec
>     inet6 fe80::202:a5ff:fee8:20be/64 scope link 
>        valid_lft forever preferred_lft forever
>
> Output with patched 2.6.30
>
> # ip -6 addr show dev eth0
> 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
>     inet6 2001:db8::202:a5ff:fee8:12e1/64 scope global dynamic 
>        valid_lft 897sec preferred_lft 27sec
>     inet6 fe80::202:a5ff:fee8:12e1/64 scope link 
>        valid_lft forever preferred_lft forever
> # sleep 30
> # ip -6 addr show dev eth0
> 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
>     inet6 2001:db8::202:a5ff:fee8:12e1/64 scope global deprecated dynamic 
>        valid_lft 862sec preferred_lft 0sec
>     inet6 fe80::202:a5ff:fee8:12e1/64 scope link 
>        valid_lft forever preferred_lft forever
>
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
>
>
>   



  reply	other threads:[~2009-06-25  9:25 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-25  7:39 PATCH: ipv6: avoid wraparound for expired lifetimes Jens Rosenboom
2009-06-25  8:40 ` Ilpo Järvinen
2009-06-25  8:42   ` David Miller
2009-06-25  9:06   ` Jens Rosenboom
2009-06-25  9:25     ` Wei Yongjun [this message]
2009-06-25  9:33     ` David Miller
2009-06-25  9:35     ` Ilpo Järvinen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4A43427D.3030109@cn.fujitsu.com \
    --to=yjwei@cn.fujitsu.com \
    --cc=ilpo.jarvinen@helsinki.fi \
    --cc=me@jayr.de \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.