Hello.
On 03-02-2014 5:08, Jesse Gross wrote:
From: Pravin B Shelar <[email protected]>
ovs_flow_free() is not called under ovs-lock during packet
execute path (ovs_packet_cmd_execute()). Since packet execute
does not touch flow->mask, there is no need to take that
lock either. So move assert in case where flow->mask is checked.
Found by code inspection.
Signed-off-by: Pravin B Shelar <[email protected]>
Signed-off-by: Jesse Gross <[email protected]>
---
net/openvswitch/flow_table.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/net/openvswitch/flow_table.c b/net/openvswitch/flow_table.c
index bd14052..ad0bda0 100644
--- a/net/openvswitch/flow_table.c
+++ b/net/openvswitch/flow_table.c
@@ -158,11 +158,12 @@ void ovs_flow_free(struct sw_flow *flow, bool deferred)
if (!flow)
return;
- ASSERT_OVSL();
-
if (flow->mask) {
struct sw_flow_mask *mask = flow->mask;
+ /* ovs-lock is required to protect mask-refcount and
+ * mask list. */
Networking multi-line comment style is:
/* bla
* bla
*/
WBR, Sergei
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev