aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/tbf_dl.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp
index 7011a6d4..0a23de4a 100644
--- a/src/tbf_dl.cpp
+++ b/src/tbf_dl.cpp
@@ -632,7 +632,7 @@ struct msgb *gprs_rlcmac_dl_tbf::create_dl_acked_block(
int bsn;
GprsCodingScheme cs_enc;
uint8_t *block_data;
- gprs_rlc_data_block_info *rdbi;
+ gprs_rlc_data_block_info *rdbi, *block_info;
/* Check if there are more blocks than BSNs */
if (data_block_idx < num_bsns)
@@ -649,10 +649,14 @@ struct msgb *gprs_rlcmac_dl_tbf::create_dl_acked_block(
punct[data_block_idx] = data_block_idx;
rdbi = &rlc.block_info[data_block_idx];
+ block_info = &m_rlc.block(bsn)->block_info;
+
OSMO_ASSERT(data_block_idx < ARRAY_SIZE(rlc.block_info));
OSMO_ASSERT(rdbi->data_len == m_rlc.block(bsn)->block_info.data_len);
OSMO_ASSERT(sizeof(*rdbi) == sizeof(m_rlc.block(bsn)->block_info));
- rlc.block_info[data_block_idx] = m_rlc.block(bsn)->block_info;
+ rdbi->e = block_info->e;
+ rdbi->cv = block_info->cv;
+ rdbi->bsn = bsn;
is_final = is_final || rdbi->cv == 0;
LOGP(DRLCMACDL, LOGL_DEBUG, "- Copying data unit %d (BSN %d)\n",