Merge remote-tracking branch 'origin/bugfix-nr-rlc-2022-09-05' into integration_2022_wk36b

This commit is contained in:
Robert Schmidt
2022-09-08 20:43:06 +02:00
+9 -11
View File
@@ -477,19 +477,18 @@ process_wait_list_head:
* if fully acked * if fully acked
*/ */
if (sn_compare_tx(entity, cur_wait_list->sdu->sn, ack_sn) < 0) { if (sn_compare_tx(entity, cur_wait_list->sdu->sn, ack_sn) < 0) {
nr_rlc_sdu_segment_t *cur = cur_wait_list; int upper_layer_id = cur_wait_list->sdu->upper_layer_id;
int upper_layer_id = cur->sdu->upper_layer_id; int sdu_size = cur_wait_list->sdu->size;
int sdu_size = cur->sdu->size; prev_wait_list->next = cur_wait_list->next;
cur_wait_list = cur_wait_list->next;
prev_wait_list->next = cur_wait_list;
if (cur_wait_list == entity->wait_end) if (cur_wait_list == entity->wait_end)
end_wait_list = prev_wait_list; end_wait_list = prev_wait_list;
if (nr_rlc_free_sdu_segment(cur)) { if (nr_rlc_free_sdu_segment(cur_wait_list)) {
entity->tx_size -= sdu_size; entity->tx_size -= sdu_size;
entity->common.sdu_successful_delivery( entity->common.sdu_successful_delivery(
entity->common.sdu_successful_delivery_data, entity->common.sdu_successful_delivery_data,
(nr_rlc_entity_t *)entity, upper_layer_id); (nr_rlc_entity_t *)entity, upper_layer_id);
} }
cur_wait_list = prev_wait_list->next;
goto process_next_pdu; goto process_next_pdu;
} }
@@ -598,19 +597,18 @@ nacks_done:
/* current segment is acked, free it, indicate successful delivery /* current segment is acked, free it, indicate successful delivery
* if fully acked * if fully acked
*/ */
nr_rlc_sdu_segment_t *cur = cur_wait_list; int upper_layer_id = cur_wait_list->sdu->upper_layer_id;
int upper_layer_id = cur->sdu->upper_layer_id; int sdu_size = cur_wait_list->sdu->size;
int sdu_size = cur->sdu->size;
prev_wait_list->next = cur_wait_list->next; prev_wait_list->next = cur_wait_list->next;
if (cur_wait_list == entity->wait_end) if (cur_wait_list == entity->wait_end)
end_wait_list = prev_wait_list; end_wait_list = prev_wait_list;
cur_wait_list = cur_wait_list->next; if (nr_rlc_free_sdu_segment(cur_wait_list)) {
if (nr_rlc_free_sdu_segment(cur)) {
entity->tx_size -= sdu_size; entity->tx_size -= sdu_size;
entity->common.sdu_successful_delivery( entity->common.sdu_successful_delivery(
entity->common.sdu_successful_delivery_data, entity->common.sdu_successful_delivery_data,
(nr_rlc_entity_t *)entity, upper_layer_id); (nr_rlc_entity_t *)entity, upper_layer_id);
} }
cur_wait_list = prev_wait_list->next;
} }
/* deal with retransmit list */ /* deal with retransmit list */
while (cur_retransmit_list != NULL while (cur_retransmit_list != NULL