From dfd97f38f6ee0c55d1753446c5332a3cc54b5a2b Mon Sep 17 00:00:00 2001 From: Rachit Kankane Date: Thu, 5 Jul 2018 18:10:36 +0530 Subject: [PATCH] qcacmn: Call blocking functions in right context Call blocking functions free_g_qdf_dp_trace_tbl_buffer and allocate_log_msg_buffer under non-atomic context. Change-Id: I534c95b19cb08472db4a4a0f8285769841b00326 CRs-Fixed: 2273581 --- qdf/linux/src/qdf_trace.c | 2 +- utils/logging/src/wlan_logging_sock_svc.c | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/qdf/linux/src/qdf_trace.c b/qdf/linux/src/qdf_trace.c index e570a06281..c0dabaf867 100644 --- a/qdf/linux/src/qdf_trace.c +++ b/qdf/linux/src/qdf_trace.c @@ -898,9 +898,9 @@ void qdf_dp_trace_deinit(void) spin_lock_bh(&l_dp_trace_lock); g_qdf_dp_trace_data.enable = false; g_qdf_dp_trace_data.no_of_record = 0; + spin_unlock_bh(&l_dp_trace_lock); free_g_qdf_dp_trace_tbl_buffer(); - spin_unlock_bh(&l_dp_trace_lock); } /** * qdf_dp_trace_set_value() - Configure the value to control DP trace diff --git a/utils/logging/src/wlan_logging_sock_svc.c b/utils/logging/src/wlan_logging_sock_svc.c index c4a32f4c29..61227d257c 100644 --- a/utils/logging/src/wlan_logging_sock_svc.c +++ b/utils/logging/src/wlan_logging_sock_svc.c @@ -864,16 +864,16 @@ int wlan_logging_sock_init_svc(void) gwlan_logging.num_buf = MAX_LOGMSG_COUNT; gwlan_logging.buffer_length = MAX_LOGMSG_LENGTH; - spin_lock_irqsave(&gwlan_logging.spin_lock, irq_flag); - INIT_LIST_HEAD(&gwlan_logging.free_list); - INIT_LIST_HEAD(&gwlan_logging.filled_list); - if (allocate_log_msg_buffer() != QDF_STATUS_SUCCESS) { pr_err("%s: Could not allocate memory for log_msg\n", __func__); return -ENOMEM; } + spin_lock_irqsave(&gwlan_logging.spin_lock, irq_flag); + INIT_LIST_HEAD(&gwlan_logging.free_list); + INIT_LIST_HEAD(&gwlan_logging.filled_list); + for (i = 0; i < gwlan_logging.num_buf; i++) { list_add(&gplog_msg[i].node, &gwlan_logging.free_list); gplog_msg[i].index = i;