[ovs-dev] [PATCH] datapath: Fix flow table sparse RCU annotations.

Jesse Gross jesse at nicira.com
Thu Nov 17 00:05:56 UTC 2011


Some overzealous marking of pointers as __rcu caused sparse to flag
errors that only showed up on the upstream kernel tree.

Signed-off-by: Jesse Gross <jesse at nicira.com>
---
 datapath/datapath.c |    2 +-
 datapath/flow.c     |    6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/datapath/datapath.c b/datapath/datapath.c
index 317c404..44d31a8 100644
--- a/datapath/datapath.c
+++ b/datapath/datapath.c
@@ -249,7 +249,7 @@ static void destroy_dp_rcu(struct rcu_head *rcu)
 {
 	struct datapath *dp = container_of(rcu, struct datapath, rcu);
 
-	flow_tbl_destroy(dp->table);
+	flow_tbl_destroy((__force struct flow_table *)dp->table);
 	free_percpu(dp->stats_percpu);
 	kobject_put(&dp->ifobj);
 }
diff --git a/datapath/flow.c b/datapath/flow.c
index 9a0df45..644a377 100644
--- a/datapath/flow.c
+++ b/datapath/flow.c
@@ -288,15 +288,15 @@ struct sw_flow *flow_alloc(void)
 	return flow;
 }
 
-static struct hlist_head __rcu *find_bucket(struct flow_table * table, u32 hash)
+static struct hlist_head *find_bucket(struct flow_table *table, u32 hash)
 {
 	return flex_array_get(table->buckets,
 				(hash & (table->n_buckets - 1)));
 }
 
-static struct flex_array  __rcu *alloc_buckets(unsigned int n_buckets)
+static struct flex_array *alloc_buckets(unsigned int n_buckets)
 {
-	struct flex_array  __rcu *buckets;
+	struct flex_array *buckets;
 	int i, err;
 
 	buckets = flex_array_alloc(sizeof(struct hlist_head *),
-- 
1.7.5.4




More information about the dev mailing list