datapath: Add casts for direct freeing of RCU data.
authorJesse Gross <jesse@nicira.com>
Fri, 24 Dec 2010 00:44:22 +0000 (16:44 -0800)
committerJesse Gross <jesse@nicira.com>
Wed, 29 Dec 2010 18:31:11 +0000 (10:31 -0800)
commit39872c70e2feefb85e3d7aa577d281d20c8decf6
tree373db4d43a2ed74acc3413e33b7ccc4022bccaa0
parent9c150f6a7039218080e067e9955aac0f6a55a712
datapath: Add casts for direct freeing of RCU data.

There are a few places where we have two levels of RCU protected
data to allow the second level to change independently of the
first.  Although the two pieces are independent, they have the
same users and lifetime of the first level always exceeds that
of the second level.  This means that we can directly free the
second level when it is safe to free the first.  This implies
that we directly access RCU-protected data, which is generally
not allowed.  There are no locks to check, so none of the normal
RCU functions apply.  Instead, this adds an explicit cast.

Found with sparse.

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