diff options
-rw-r--r-- | src/tbf_dl.cpp | 8 |
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", |