Merge remote-tracking branches 'asoc/fix/blackfin', 'asoc/fix/da9055', 'asoc/fix...
[firefly-linux-kernel-4.4.55.git] / net / openvswitch / flow_table.c
index bd14052ed3420d2f7c3f3c636000e9822476f253..3c268b3d71c34baa0a8c70888823b37da454fffd 100644 (file)
@@ -158,11 +158,13 @@ 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.
+                */
+               ASSERT_OVSL();
                BUG_ON(!mask->ref_count);
                mask->ref_count--;