From ea5851998c11b8211170179a6d924d4935fec0a1 Mon Sep 17 00:00:00 2001 From: Sean Hefty Date: Tue, 26 Nov 2013 13:16:19 -0800 Subject: [PATCH] librdmacm: Check 'init' under mutex ucma_ib_init() does a quick check that access to ibacm has been initialized. This check is done outside of the acm_lock mutex. We need to check init again inside of holding the mutex to ensure that we don't run the initialization code twice. Signed-off-by: Sean Hefty --- src/acm.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/acm.c b/src/acm.c index 45bcb813..fa06d319 100644 --- a/src/acm.c +++ b/src/acm.c @@ -137,6 +137,9 @@ void ucma_ib_init(void) return; pthread_mutex_lock(&acm_lock); + if (init) + goto unlock; + if (!ucma_set_server_port()) goto out; @@ -155,6 +158,7 @@ void ucma_ib_init(void) } out: init = 1; +unlock: pthread_mutex_unlock(&acm_lock); } -- 2.41.0