flow-mask and mask-list can be accessed from rcu call-back.
Following patch guard it with ovs_lock.

Found by code inspection.

Signed-off-by: Pravin B Shelar <pshe...@nicira.com>
---
 datapath/flow.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/datapath/flow.c b/datapath/flow.c
index 29122af..fe1f975 100644
--- a/datapath/flow.c
+++ b/datapath/flow.c
@@ -549,7 +549,9 @@ static void flow_tbl_destroy_rcu_cb(struct rcu_head *rcu)
 {
        struct flow_table *table = container_of(rcu, struct flow_table, rcu);
 
+       ovs_lock();
        __flow_tbl_destroy(table);
+       ovs_unlock();
 }
 
 void ovs_flow_tbl_destroy(struct flow_table *table, bool deferred)
-- 
1.7.1

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to