From 76d023fd56dcfe95edd65e42e3522e1e2394b384 Mon Sep 17 00:00:00 2001 From: Shuhei Matsumoto Date: Tue, 6 Mar 2018 07:57:53 +0900 Subject: [PATCH] iscsi: pthread_mutex_lock is called before pthread_mutex_init iSCSI's global mutex is used in spdk_iscsi_portal_grp_create() before it is initialized by pthread_mutex_init(). A mutex filled with zero bytes has been accepted by now but this should be fixed. Change-Id: I2e197bec8da2f781c8c4f6e2a2caf9924b0a4369 Signed-off-by: Shuhei Matsumoto Reviewed-on: https://review.gerrithub.io/402497 Reviewed-by: Jim Harris Tested-by: SPDK Automated Test System Reviewed-by: Changpeng Liu Reviewed-by: Daniel Verkamp --- lib/iscsi/iscsi_subsystem.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/iscsi/iscsi_subsystem.c b/lib/iscsi/iscsi_subsystem.c index 9390b8f3d..65864f0ca 100644 --- a/lib/iscsi/iscsi_subsystem.c +++ b/lib/iscsi/iscsi_subsystem.c @@ -794,6 +794,12 @@ spdk_iscsi_app_read_parameters(void) */ g_spdk_iscsi.MaxConnections = g_spdk_iscsi.MaxSessions; + rc = pthread_mutex_init(&g_spdk_iscsi.mutex, NULL); + if (rc != 0) { + SPDK_ERRLOG("mutex_init() failed\n"); + return -1; + } + spdk_iscsi_log_globals(); /* portal groups */ @@ -810,12 +816,6 @@ spdk_iscsi_app_read_parameters(void) return -1; } - rc = pthread_mutex_init(&g_spdk_iscsi.mutex, NULL); - if (rc != 0) { - SPDK_ERRLOG("mutex_init() failed\n"); - return -1; - } - return 0; }