On Tue, Apr 23, 2013 at 3:28 PM, Thomas Graf <tg...@redhat.com> wrote: > On 04/23/2013 10:39 PM, Jesse Gross wrote: >> >> On Fri, Apr 19, 2013 at 7:01 AM, Thomas Graf <tg...@redhat.com> wrote: >>> >>> diff --git a/datapath/vport-netdev.c b/datapath/vport-netdev.c >>> index f8948fa..c0e3c02 100644 >>> --- a/datapath/vport-netdev.c >>> +++ b/datapath/vport-netdev.c >>> @@ -153,10 +161,16 @@ static struct vport *netdev_create(const struct >>> vport_parms *parms) >>> } >>> >>> rtnl_lock(); >>> +#ifdef HAVE_RHEL_OVS_HOOK >>> + netdev_vport->dev->ax25_ptr = vport; >>> + atomic_inc(&nr_bridges); >>> + openvswitch_handle_frame_hook = netdev_frame_hook; >> >> >> Shouldn't these assignments use rcu_assign_pointer? > > > Are you worried about a missing wmb? The hook is only used if > IFF_OVS_DATAPATH is set on skb->dev and there should be a wmb when > the device is actually added to the list of vports I guess. > > I have no problem adding it though.
I agree that in practice there are other memory barriers that will protect this. However, since the locks that they are associated with aren't really protecting this, it makes it more difficult to reason about than necessary. Since we're using RCU it seems like a good idea to use the whole mechanism. _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev