Commit bbab65f0 authored by Robert Schmidt's avatar Robert Schmidt

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

parents 8f5868dc 2c08302c
...@@ -477,19 +477,18 @@ process_wait_list_head: ...@@ -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: ...@@ -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
......
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