netdev
[Top] [All Lists]

Re: [RFC][PATCH] identify in_dev_get rcu read-side critical sections

To: davem@xxxxxxxxxxxxx (David S. Miller)
Subject: Re: [RFC][PATCH] identify in_dev_get rcu read-side critical sections
From: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Date: Wed, 28 Sep 2005 12:55:45 +1000
Cc: suzannew@xxxxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx, Robert.Olsson@xxxxxxxxxxx, paulmck@xxxxxxxxxx, walpole@xxxxxxxxxx, netdev@xxxxxxxxxxx
In-reply-to: <20050927.135626.88296134.davem@xxxxxxxxxxxxx>
Organization: Core
Sender: netdev-bounce@xxxxxxxxxxx
User-agent: tin/1.7.4-20040225 ("Benbecula") (UNIX) (Linux/2.4.27-hx-1-686-smp (i686))
David S. Miller <davem@xxxxxxxxxxxxx> wrote:
> 
> I agree with the changes to add rcu_dereference() use.
> Those were definitely lacking and needed.

Actually I'm not so sure that they are all needed.  I only looked
at the very first one in the patch which is in in_dev_get().  That
one certainly isn't necessary because the old value of ip_ptr
is valid as long as the reference count does not hit zero.

The later is guaranteed by the increment in in_dev_get().

Because the pervasiveness of reference counting in the network stack,
I believe that we should scrutinise the other bits in the patch too
to make sure that they are all needed.

In general, using rcu_dereference/rcu_assign_pointer does not
guarantee correct code.  We really need to look at each case
individually.

Cheers,
-- 
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <herbert@xxxxxxxxxxxxxxxxxxx>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

<Prev in Thread] Current Thread [Next in Thread>