All of lore.kernel.org
 help / color / mirror / Atom feed
From: Benjamin ZORES <benjamin.zores@alcatel-lucent.fr>
To: netdev@vger.kernel.org
Subject: Re: [PATCH] Fix infinite retry loop in IP-Config
Date: Wed, 28 Jan 2009 13:08:15 +0100	[thread overview]
Message-ID: <49804AAF.7020702@alcatel-lucent.fr> (raw)
In-Reply-To: <20090128105220.GB4190@ff.dom.local>

[-- Attachment #1: Type: text/plain, Size: 1168 bytes --]

Jarek Poplawski a écrit :
> On 28-01-2009 10:07, Benjamin ZORES wrote:
>   
>> Hi,
>>
>> The attached patch fixes some bug with ip-config max retry number.
>> In ip_auto_config(), kernel tries to retrieve IP configuration forever
>> in case of NFS root and some specific amount of time otherwise.
>>
>> The problem is that, in case of error, the code jump to the try_try_again
>> goto statement, that reassigns the retry number counter, which obviously
>> leads to an infinite loop if IP config fails.
>>
>> The attached patch corrects this behavior.
>> Hope one can push it to mainstream kernel tree.
>>
>> Ben
>>
>> diff --git a/net/ipv4/ipconfig.c b/net/ipv4/ipconfig.c
>> index 42a0f3d..4911b81 100644
>> --- a/net/ipv4/ipconfig.c
>> +++ b/net/ipv4/ipconfig.c
>> @@ -1268,6 +1268,7 @@ __be32 __init root_nfs_parse_addr(char *name)
>>  static int __init ip_auto_config(void)
>>  {
>>  	__be32 addr;
>> +	 int retries = CONF_OPEN_RETRIES;
>>     
>  
> Doesn't it need "#ifdef IPCONFIG_DYNAMIC" to prevent a compiler
> warning? I guess you could add a "Signed-off-by:" line BTW.
>   
You're perfectly right about this.
Attached an updated version of the patch.

Ben

[-- Attachment #2: netdev-ipconfig-retry-fix.diff --]
[-- Type: text/x-diff, Size: 952 bytes --]

commit 4f9928e4ed6aae2a4c2f2216cab1c16e38631a88
Author: Benjamin Zores <benjamin.zores@alcatel-lucent.fr>
Signed-off-by: Benjamin Zores <benjamin.zores@alcatel-lucent.fr>
Date:   Wed Jan 28 13:03:07 2009 +0100

    fix infinite retry loop in IP-Config

diff --git a/net/ipv4/ipconfig.c b/net/ipv4/ipconfig.c
index 42a0f3d..5fad34d 100644
--- a/net/ipv4/ipconfig.c
+++ b/net/ipv4/ipconfig.c
@@ -1268,6 +1268,9 @@ __be32 __init root_nfs_parse_addr(char *name)
 static int __init ip_auto_config(void)
 {
        __be32 addr;
+#ifdef IPCONFIG_DYNAMIC
+        int retries = CONF_OPEN_RETRIES;
+#endif
 
 #ifdef CONFIG_PROC_FS
        proc_net_fops_create(&init_net, "pnp", S_IRUGO, &pnp_seq_fops);
@@ -1305,8 +1308,6 @@ static int __init ip_auto_config(void)
            ic_first_dev->next) {
 #ifdef IPCONFIG_DYNAMIC
 
-               int retries = CONF_OPEN_RETRIES;
-
                if (ic_dynamic() < 0) {
                        ic_close_devs();
 



  reply	other threads:[~2009-01-28 12:09 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-01-28  9:07 [PATCH] Fix infinite retry loop in IP-Config Benjamin ZORES
2009-01-28 10:52 ` Jarek Poplawski
2009-01-28 12:08   ` Benjamin ZORES [this message]
2009-01-29 15:33     ` Benjamin ZORES
2009-01-29 20:39       ` David Miller
2009-01-30  0:19     ` David Miller
2009-01-30  8:25       ` Benjamin ZORES

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=49804AAF.7020702@alcatel-lucent.fr \
    --to=benjamin.zores@alcatel-lucent.fr \
    --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.