datapath: Allocate vports in more RCU friendly manner.
authorJesse Gross <jesse@nicira.com>
Fri, 24 Dec 2010 00:36:26 +0000 (16:36 -0800)
committerJesse Gross <jesse@nicira.com>
Wed, 29 Dec 2010 18:42:47 +0000 (10:42 -0800)
commit1326754973a4ecb53ede31e8d3e38d472ca50091
treec946a61d0c3f663df6b5c6bbd0f87dc9cf74d823
parent6b02c20141e318bf95ecbd384c73bdf7f74920d3
datapath: Allocate vports in more RCU friendly manner.

In a few places, when creating a new vport we also need to allocate
some memory for configuration that can change.  This data is protected
by RCU but we directly access the memory when initializing it.  This
is fine, since the vport has not yet been published and we use the
apropriate memory barriers when doing so.  However, it makes tools
like sparse unhappy and is also asymmetric since we use RCU to
dereference the pointers but not to assign them.  This cleans that
up somewhat by initializing the memory first and then using RCU
to assign it, which makes everyone happy.

Found with sparse.

Signed-off-by: Jesse Gross <jesse@nicira.com>
Acked-by: Ben Pfaff <blp@nicira.com>
datapath/tunnel.c
datapath/vport-patch.c