Selaa lähdekoodia

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
Rachit Kankane 6 vuotta sitten
vanhempi
sitoutus
dfd97f38f6
2 muutettua tiedostoa jossa 5 lisäystä ja 5 poistoa
  1. 1 1
      qdf/linux/src/qdf_trace.c
  2. 4 4
      utils/logging/src/wlan_logging_sock_svc.c

+ 1 - 1
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

+ 4 - 4
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;