From e9d04428ff64bffe7d0c7087af8022871257e256 Mon Sep 17 00:00:00 2001 From: Wu Jing Date: Thu, 23 May 2019 18:07:01 +0900 Subject: [PATCH] fix segfault because RRU uses RC.mac --- openair2/PHY_INTERFACE/IF_Module.c | 10 +++++++--- targets/RT/USER/lte-enb.c | 4 ++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/openair2/PHY_INTERFACE/IF_Module.c b/openair2/PHY_INTERFACE/IF_Module.c index ad49a16cec..0c1efcaa2d 100644 --- a/openair2/PHY_INTERFACE/IF_Module.c +++ b/openair2/PHY_INTERFACE/IF_Module.c @@ -573,7 +573,10 @@ void UL_indication(UL_IND_t *UL_info) { int CC_id = UL_info->CC_id; Sched_Rsp_t *sched_info = &Sched_INFO[module_id][CC_id]; IF_Module_t *ifi = if_inst[module_id]; - eNB_MAC_INST *mac = RC.mac[module_id]; + eNB_MAC_INST *mac = NULL; + if (NFAPI_MODE != NFAPI_MODE_PNF) { + mac = RC.mac[module_id]; + } LOG_D(PHY,"SFN/SF:%d%d module_id:%d CC_id:%d UL_info[rx_ind:%d harqs:%d crcs:%d cqis:%d preambles:%d sr_ind:%d]\n", UL_info->frame,UL_info->subframe, module_id,CC_id, @@ -595,15 +598,16 @@ void UL_indication(UL_IND_t *UL_info) { } ifi->CC_mask |= (1<frame,UL_info->subframe); + } handle_rach(UL_info); handle_sr(UL_info); handle_cqi(UL_info); handle_harq(UL_info); + if (NFAPI_MODE != NFAPI_MODE_PNF) { // clear HI prior to handling ULSCH uint8_t sf_ahead_dl = ul_subframe2_k_phich(&mac->common_channels[CC_id], UL_info->subframe); @@ -611,7 +615,7 @@ void UL_indication(UL_IND_t *UL_info) { mac->HI_DCI0_req[CC_id][(UL_info->subframe+sf_ahead_dl)%10].hi_dci0_request_body.number_of_hi = 0; LOG_D(MAC,"current (%d,%d) clear HI_DCI0_req[0][%d]\n",UL_info->frame,UL_info->subframe,(UL_info->subframe+sf_ahead_dl)%10); } - + } handle_ulsch(UL_info); if (NFAPI_MODE != NFAPI_MODE_PNF) { diff --git a/targets/RT/USER/lte-enb.c b/targets/RT/USER/lte-enb.c index 8ae3d8956c..947c02eea2 100644 --- a/targets/RT/USER/lte-enb.c +++ b/targets/RT/USER/lte-enb.c @@ -204,9 +204,9 @@ static inline int rxtx(PHY_VARS_eNB *eNB,L1_rxtx_proc_t *proc, char *thread_name wakeup_prach_eNB_br(eNB,NULL,proc->frame_rx,proc->subframe_rx); #endif } - + if (NFAPI_MODE==NFAPI_MODE_VNF) { release_UE_in_freeList(eNB->Mod_id); - + } // UE-specific RX processing for subframe n if (NFAPI_MODE==NFAPI_MONOLITHIC || NFAPI_MODE==NFAPI_MODE_PNF) { phy_procedures_eNB_uespec_RX(eNB, proc);