Peter Zijlstra <pet...@infradead.org> wrote:

> > +                   if (conn->proto.index_key < k.index_key)
> > +                           p = p->rb_left;
> > +                   else if (conn->proto.index_key > k.index_key)
> > +                           p = p->rb_right;
> 
> You still very much need rcu_dereference() for both left and right
> pointers. As well as the first p load.

Bah...  Yes.  Good point.

> > +   rb_link_node(&conn->service_node, parent, pp);
> 
> You want rb_link_node_rcu() here.

Should there be an rb_replace_node_rcu() also?

David

Reply via email to