All of lore.kernel.org
 help / color / mirror / Atom feed
From: Benjamin Thery <benjamin.thery@bull.net>
To: David Miller <davem@davemloft.net>
Cc: yoshfuji@linux-ipv6.org, netdev@vger.kernel.org
Subject: Re: [PATCH] ipv6: fix run pending DAD when interface becomes ready
Date: Wed, 05 Nov 2008 11:28:44 +0100	[thread overview]
Message-ID: <4911755C.4030504@bull.net> (raw)
In-Reply-To: <20081105.014446.140069453.davem@davemloft.net>

David Miller wrote:
> From: David Miller <davem@davemloft.net>
> Date: Tue, 04 Nov 2008 14:51:22 -0800 (PST)
> 
>> From: Benjamin Thery <benjamin.thery@bull.net>
>> Date: Tue, 04 Nov 2008 14:55:50 +0100
>>
>>> I think there's a bug in net/ipv6/addrconf.c, addrconf_notify():
>>> addrconf_dad_run() is not always run when the interface is flagged IF_READY.
>>> Currently it is only run when receiving NETDEV_CHANGE event. Looks like
>>> some (virtual) devices doesn't send this event when becoming up.
>>>
>>> For both NETDEV_UP and NETDEV_CHANGE events, when the interface becomes
>>> ready, run_pending should be set to 1. Patch below.
>>>
>>> 'run_pending = 1' could be moved below the if/else block but it makes 
>>> the code less readable.

>> I wonder if we should instead make the virtual devices emit
>> the missing event?

I don't know. We'll have to identify all the devices that (mis)behave
like this.
Are all the devices supposed to emit both NETDEV_UP and NETDEV_CHANGE
when ifconfig/ip commands set the devices up?


But as you state below, it also looked more logical to me to run 
addrconf_dad_run() on every events that causes the interface to become
ready.

Benjamin

> 
> In any event, for the time being, I'm going to apply
> Benjamin's patch to fix this problem.
> 
> It makes the function in question logically consistent
> in that now everything that can cause IF_READY to become
> set will also cause run_pending work to run.

This is how

> 
> 


-- 
B e n j a m i n   T h e r y  - BULL/DT/Open Software R&D

    http://www.bull.com

      reply	other threads:[~2008-11-05 10:28 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20081104135549.981972492@nptl.frec.bull.fr>
2008-11-04 13:55 ` [PATCH] ipv6: fix run pending DAD when interface becomes ready Benjamin Thery
2008-11-04 22:51   ` David Miller
2008-11-05  9:44     ` David Miller
2008-11-05 10:28       ` Benjamin Thery [this message]

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=4911755C.4030504@bull.net \
    --to=benjamin.thery@bull.net \
    --cc=davem@davemloft.net \
    --cc=netdev@vger.kernel.org \
    --cc=yoshfuji@linux-ipv6.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.