From dec525cb85f0036bb433d9e738fab8c4f7ba083f Mon Sep 17 00:00:00 2001
From: Robert Schmidt <robert.schmidt@eurecom.fr>
Date: Thu, 10 Jun 2021 10:18:41 +0200
Subject: [PATCH] Add mutex for protecting 4G preprocessor

---
 openair2/LAYER2/MAC/eNB_scheduler_dlsch.c | 2 ++
 openair2/LAYER2/MAC/mac.h                 | 1 +
 2 files changed, 3 insertions(+)

diff --git a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
index 0898622115..db10844736 100644
--- a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
+++ b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
@@ -573,7 +573,9 @@ schedule_ue_spec(module_id_t module_idP,
   VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_DLSCH_PREPROCESSOR,
                                           VCD_FUNCTION_IN);
   start_meas(&eNB->schedule_dlsch_preprocessor);
+  pthread_mutex_lock(&eNB->pp_dl_mutex);
   eNB->pre_processor_dl.dl(module_idP, CC_id, frameP, subframeP);
+  pthread_mutex_unlock(&eNB->pp_dl_mutex);
   stop_meas(&eNB->schedule_dlsch_preprocessor);
   VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_DLSCH_PREPROCESSOR,
                                           VCD_FUNCTION_OUT);
diff --git a/openair2/LAYER2/MAC/mac.h b/openair2/LAYER2/MAC/mac.h
index 12ffaf4a5b..b7ed9107d9 100644
--- a/openair2/LAYER2/MAC/mac.h
+++ b/openair2/LAYER2/MAC/mac.h
@@ -1442,6 +1442,7 @@ typedef struct eNB_MAC_INST_s {
   /// are called by ULSCH/DLSCH, respectively. Pro-processor implementation can
   /// encapsulate slicing.
   pp_impl_param_t pre_processor_dl;
+  pthread_mutex_t pp_dl_mutex;
   pp_impl_param_t pre_processor_ul;
 
   int32_t puSch10xSnr;
-- 
GitLab