Re: [PATCH net-next] neigh: Add missing rcu_assign_pointer
From: Ying Xue <hidden>
Date: 2015-05-29 01:21:53
From: Ying Xue <hidden>
Date: 2015-05-29 01:21:53
On 05/28/2015 06:13 PM, Eric Dumazet wrote:
This patch is not needed. You really should read Documentation/RCU , because it looks like you are quite confused. When we remove an element from a RCU protected list, all the objects in the chain are already ready to be caught by rcu readers. Therefore, no additional memory barrier is needed before doing *np = n->next; Please do not add spurious memory barriers. Like atomic operations, we want all of them being required and possibly documented.
Yes, you are right, thanks for your clear explanation :) However, there are still three places where we use rcu_assign_pointer() to remove a neigh entry from a RCU-protected list, and the three places are neigh_forced_gc(), neigh_flush_dev(), and __neigh_for_each_release() respectively. This means it's redundant for us to use rcu_assign_pointer() in the three places, right? Regards, Ying