[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <e2d7436a1002140034h74617164p1a5dc90df3587095@mail.gmail.com>
Date: Sun, 14 Feb 2010 09:34:43 +0100
From: Michał Mirosław <mirqus@...il.com>
To: Eric Dumazet <eric.dumazet@...il.com>
Cc: "Paul E. McKenney" <paulmck@...ux.vnet.ibm.com>,
linux-kernel@...r.kernel.org, mingo@...e.hu, laijs@...fujitsu.com,
dipankar@...ibm.com, akpm@...ux-foundation.org,
mathieu.desnoyers@...ymtl.ca, josh@...htriplett.org,
dvhltc@...ibm.com, niv@...ibm.com, tglx@...utronix.de,
peterz@...radead.org, rostedt@...dmis.org, Valdis.Kletnieks@...edu,
dhowells@...hat.com, David Miller <davem@...emloft.net>,
netdev <netdev@...r.kernel.org>
Subject: Re: [PATCH tip/core/rcu 05/13] net: add checking to rcu_dereference()
primitives
2010/2/12 Eric Dumazet <eric.dumazet@...il.com>:
> Le jeudi 11 février 2010 à 16:00 -0800, Paul E. McKenney a écrit :
[...]
>> @@ -1654,12 +1654,12 @@ static struct dn_route *dn_rt_cache_get_first(struct seq_file *seq)
>>
>> for(s->bucket = dn_rt_hash_mask; s->bucket >= 0; --s->bucket) {
>> rcu_read_lock_bh();
>> - rt = dn_rt_hash_table[s->bucket].chain;
>> + rt = rcu_dereference_bh(dn_rt_hash_table[s->bucket].chain);
>> if (rt)
>> break;
>> rcu_read_unlock_bh();
>> }
>> - return rcu_dereference(rt);
>> + return rt;
>> }
Isn't there a bug? Looks like data pointed to by rt should be
protected by RCU, but the rcu_read_lock is withdrawn before access.
Best Regards,
Michał Mirosław
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists