Commit f248b2fd authored by sriharsha's avatar sriharsha Committed by Sriharsha Korada

fix: avoid freeing rlc config structure

parent e5ab3e02
...@@ -649,7 +649,7 @@ void nr_rrc_mac_config_req_ue_logicalChannelBearer(module_id_t module_id, ...@@ -649,7 +649,7 @@ void nr_rrc_mac_config_req_ue_logicalChannelBearer(module_id_t module_id,
} }
// reorder the logical channels as per its priority // reorder the logical channels as per its priority
qsort_r((void *)mac->lc_ordered_info.lcids_ordered, rlc_toadd_list->list.count, sizeof(uint32_t), lcid_cmp, (void *)mac); qsort_r(mac->lc_ordered_info.lcids_ordered, rlc_toadd_list->list.count, sizeof(uint32_t), lcid_cmp, mac);
for (uint8_t i = 0; i < rlc_toadd_list->list.count; i++) { for (uint8_t i = 0; i < rlc_toadd_list->list.count; i++) {
mac->lc_ordered_info.logicalChannelConfig_ordered[i] = mac->logicalChannelConfig[mac->lc_ordered_info.lcids_ordered[i] - 1]; mac->lc_ordered_info.logicalChannelConfig_ordered[i] = mac->logicalChannelConfig[mac->lc_ordered_info.lcids_ordered[i] - 1];
} }
......
...@@ -106,7 +106,7 @@ NR_UE_MAC_INST_t * nr_l2_init_ue(NR_UE_RRC_INST_t* rrc_inst) { ...@@ -106,7 +106,7 @@ NR_UE_MAC_INST_t * nr_l2_init_ue(NR_UE_RRC_INST_t* rrc_inst) {
nr_rrc_mac_config_req_ue_logicalChannelBearer(0, &rlc_toadd_list, NULL); nr_rrc_mac_config_req_ue_logicalChannelBearer(0, &rlc_toadd_list, NULL);
// free memory // free memory
free_nr_noS1_bearer_config(&rbconfig, &rlc_rbconfig); free_nr_noS1_bearer_config(&rbconfig, NULL);
} }
} }
else { else {
......
...@@ -3072,9 +3072,9 @@ uint8_t nr_ue_get_sdu(module_id_t module_idP, ...@@ -3072,9 +3072,9 @@ uint8_t nr_ue_get_sdu(module_id_t module_idP,
for (uint8_t id = 0; id < avail_lcids_count; id++) { for (uint8_t id = 0; id < avail_lcids_count; id++) {
/* /*
loop over all logical channels in the order of priority. As stated in ts spec, in the first run, only prioritized loop over all logical channels in the order of priority. As stated in TS138.321 Section 5.4.3.1, in the first run, only
number of bytes are taken out from the correspondinf RLC buffers of all active logical channels and if there is still prioritized number of bytes are taken out from the corresponding RLC buffers of all active logical channels and if there is
space availble in the MAC PDU, then from the next run all the remaining data from the higher priority logical channel still space availble in the MAC PDU, then from the next run all the remaining data from the higher priority logical channel
is placed in the MAC PDU before going on to next high priority logical channel is placed in the MAC PDU before going on to next high priority logical channel
*/ */
int lcid = lcids_bj_pos[id]; int lcid = lcids_bj_pos[id];
......
...@@ -460,8 +460,10 @@ void free_nr_noS1_bearer_config(NR_RadioBearerConfig_t **rbconfig, ...@@ -460,8 +460,10 @@ void free_nr_noS1_bearer_config(NR_RadioBearerConfig_t **rbconfig,
{ {
ASN_STRUCT_FREE(asn_DEF_NR_RadioBearerConfig, *rbconfig); ASN_STRUCT_FREE(asn_DEF_NR_RadioBearerConfig, *rbconfig);
*rbconfig = NULL; *rbconfig = NULL;
ASN_STRUCT_FREE(asn_DEF_NR_RLC_BearerConfig, *rlc_rbconfig); if (rlc_rbconfig != NULL) {
*rlc_rbconfig = NULL; ASN_STRUCT_FREE(asn_DEF_NR_RLC_BearerConfig, *rlc_rbconfig);
*rlc_rbconfig = NULL;
}
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment