ofproto: Lock hard_timeout and idle_timeout of struct rule.
[sliver-openvswitch.git] / ofproto / ofproto-dpif-xlate.c
index 3050678..8aa2bb1 100644 (file)
@@ -2040,8 +2040,10 @@ xlate_fin_timeout(struct xlate_ctx *ctx,
              list_insert(&rule->up.ofproto->expirable, &rule->up.expirable);
          }
 
-        reduce_timeout(oft->fin_idle_timeout, &rule->up.idle_timeout);
-        reduce_timeout(oft->fin_hard_timeout, &rule->up.hard_timeout);
+         ovs_mutex_lock(&rule->up.timeout_mutex);
+         reduce_timeout(oft->fin_idle_timeout, &rule->up.idle_timeout);
+         reduce_timeout(oft->fin_hard_timeout, &rule->up.hard_timeout);
+         ovs_mutex_unlock(&rule->up.timeout_mutex);
     }
 }