summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ovn/controller/pinctrl.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/ovn/controller/pinctrl.c b/ovn/controller/pinctrl.c
index b7bb4c990..2ecefcf60 100644
--- a/ovn/controller/pinctrl.c
+++ b/ovn/controller/pinctrl.c
@@ -466,6 +466,7 @@ static int
pinctrl_handle_buffered_packets(const struct flow *ip_flow,
struct dp_packet *pkt_in,
const struct match *md, bool is_arp)
+ OVS_REQUIRES(pinctrl_mutex)
{
struct buffered_packets *bp;
struct dp_packet *clone;
@@ -514,7 +515,9 @@ pinctrl_handle_arp(struct rconn *swconn, const struct flow *ip_flow,
return;
}
+ ovs_mutex_lock(&pinctrl_mutex);
pinctrl_handle_buffered_packets(ip_flow, pkt_in, md, true);
+ ovs_mutex_unlock(&pinctrl_mutex);
/* Compose an ARP packet. */
uint64_t packet_stub[128 / 8];
@@ -3139,7 +3142,9 @@ pinctrl_handle_nd_ns(struct rconn *swconn, const struct flow *ip_flow,
return;
}
+ ovs_mutex_lock(&pinctrl_mutex);
pinctrl_handle_buffered_packets(ip_flow, pkt_in, md, false);
+ ovs_mutex_unlock(&pinctrl_mutex);
uint64_t packet_stub[128 / 8];
struct dp_packet packet;