From: Nathan Skrzypczak Date: Fri, 4 Jun 2021 09:17:40 +0000 (+0200) Subject: cnat: fix spinlock X-Git-Tag: v22.02-rc0~333 X-Git-Url: https://gerrit.fd.io/r/gitweb?a=commitdiff_plain;h=8afa5d3ccd06df80212ce2ea23b6482287d9481b;p=vpp.git cnat: fix spinlock Type: fix Change-Id: Id6406702061ada54e51ebcf5c367328605de2b6b Signed-off-by: Nathan Skrzypczak --- diff --git a/src/plugins/cnat/cnat_src_policy.c b/src/plugins/cnat/cnat_src_policy.c index e11e912ab15..cac24b7742c 100644 --- a/src/plugins/cnat/cnat_src_policy.c +++ b/src/plugins/cnat/cnat_src_policy.c @@ -122,7 +122,10 @@ cnat_allocate_port (u16 * port, ip_protocol_t iproto) if (PREDICT_FALSE (*port >= UINT16_MAX)) *port = clib_bitmap_next_clear (ca->bmap, MIN_SRC_PORT); if (PREDICT_FALSE (*port >= UINT16_MAX)) - return -1; + { + clib_spinlock_unlock (&ca->lock); + return -1; + } } clib_bitmap_set_no_check (ca->bmap, *port, 1); *port = clib_host_to_net_u16 (*port);