Merge branch 'mainstream'
[sliver-openvswitch.git] / ofproto / ofproto-dpif-upcall.c
index 54d3c21..ff9b2d5 100644 (file)
@@ -123,6 +123,9 @@ udpif_create(struct dpif_backer *backer, struct dpif *dpif)
     list_init(&udpif->upcalls);
     list_init(&udpif->fmbs);
     atomic_init(&udpif->reval_seq, 0);
+    ovs_mutex_init(&udpif->drop_key_mutex, PTHREAD_MUTEX_NORMAL);
+    ovs_mutex_init(&udpif->upcall_mutex, PTHREAD_MUTEX_NORMAL);
+    ovs_mutex_init(&udpif->fmb_mutex, PTHREAD_MUTEX_NORMAL);
 
     return udpif;
 }
@@ -544,7 +547,7 @@ recv_upcalls(struct udpif *udpif)
                     || type == OVS_KEY_ATTR_UDP) {
                     if (nl_attr_get_size(nla) == 4) {
                         ovs_be32 attr = nl_attr_get_be32(nla);
-                        hash = mhash_add(hash, (uint32_t) attr);
+                        hash = mhash_add(hash, (OVS_FORCE uint32_t) attr);
                         n_bytes += 4;
                     } else {
                         VLOG_WARN("Netlink attribute with incorrect size.");
@@ -764,7 +767,7 @@ handle_miss_upcalls(struct udpif *udpif, struct list *upcalls)
             continue;
         }
 
-        flow_extract(dupcall->packet, flow.skb_priority, flow.skb_mark,
+        flow_extract(dupcall->packet, flow.skb_priority, flow.pkt_mark,
                      &flow.tunnel, &flow.in_port, &miss->flow);
 
         /* Add other packets to a to-do list. */