<p>pespin <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-pcu/+/25812">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  fixeria: Looks good to me, approved
  dexter: Looks good to me, but someone else must approve

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">bts_rcv_rach(): Gather pointers to data objects early and use them later<br><br>Change-Id: I476814d0f7be4b53f66211bb472700fee4f2caa9<br>---<br>M src/bts.cpp<br>1 file changed, 11 insertions(+), 12 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/bts.cpp b/src/bts.cpp</span><br><span>index cad6c90..8d98fe4 100644</span><br><span>--- a/src/bts.cpp</span><br><span>+++ b/src/bts.cpp</span><br><span>@@ -867,7 +867,8 @@</span><br><span>      struct chan_req_params chan_req = { 0 };</span><br><span>     struct gprs_rlcmac_ul_tbf *tbf = NULL;</span><br><span>       struct gprs_rlcmac_sba *sba;</span><br><span style="color: hsl(0, 100%, 40%);">-    uint8_t trx_no = 0, ts_no = 0; /* initialize to avoid uninitialized false warnings on some gcc versions (11.1.0) */</span><br><span style="color: hsl(120, 100%, 40%);">+   struct gprs_rlcmac_pdch *pdch = NULL;</span><br><span style="color: hsl(120, 100%, 40%);">+ struct gprs_rlcmac_trx *trx = NULL;</span><br><span>  uint32_t sb_fn = 0;</span><br><span>  uint8_t usf = 7;</span><br><span>     uint8_t tsc = 0;</span><br><span>@@ -917,12 +918,11 @@</span><br><span>                     goto send_imm_ass_rej;</span><br><span>               }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-           trx_no = sba->pdch->trx_no();</span><br><span style="color: hsl(0, 100%, 40%);">-             ts_no = sba->pdch->ts_no;</span><br><span style="color: hsl(120, 100%, 40%);">+               pdch = sba->pdch;</span><br><span>                 sb_fn = sba->fn;</span><br><span style="color: hsl(0, 100%, 40%);">-             tsc = bts->trx[trx_no].pdch[ts_no].tsc;</span><br><span style="color: hsl(120, 100%, 40%);">+            tsc = pdch->tsc;</span><br><span>          LOGP(DRLCMAC, LOGL_DEBUG, "Allocated a single block at "</span><br><span style="color: hsl(0, 100%, 40%);">-                   "SBFn=%u TRX=%u TS=%u\n", sb_fn, trx_no, ts_no);</span><br><span style="color: hsl(120, 100%, 40%);">+                    "SBFn=%u TRX=%u TS=%u\n", sb_fn, pdch->trx->trx_no, pdch->ts_no);</span><br><span>    } else {</span><br><span>             GprsMs *ms = bts_alloc_ms(bts, 0, chan_req.egprs_mslot_class);</span><br><span>               tbf = tbf_alloc_ul_ccch(bts, ms);</span><br><span>@@ -932,11 +932,11 @@</span><br><span>                    goto send_imm_ass_rej;</span><br><span>               }</span><br><span>            tbf->set_ta(ta);</span><br><span style="color: hsl(0, 100%, 40%);">-             trx_no = tbf->trx->trx_no;</span><br><span style="color: hsl(0, 100%, 40%);">-                ts_no = tbf->first_ts;</span><br><span style="color: hsl(0, 100%, 40%);">-               usf = tbf->m_usf[ts_no];</span><br><span style="color: hsl(120, 100%, 40%);">+           pdch = &tbf->trx->pdch[tbf->first_ts];</span><br><span style="color: hsl(120, 100%, 40%);">+           usf = tbf->m_usf[pdch->ts_no];</span><br><span>                 tsc = tbf->tsc();</span><br><span>         }</span><br><span style="color: hsl(120, 100%, 40%);">+     trx = pdch->trx;</span><br><span> </span><br><span> send_imm_ass_rej:</span><br><span>         /* Allocate a bit-vector for RR Immediate Assignment [Reject] */</span><br><span>@@ -952,10 +952,9 @@</span><br><span>      } else {</span><br><span>             LOGP(DRLCMAC, LOGL_DEBUG, "Tx Immediate Assignment on AGCH: "</span><br><span>                   "TRX=%u (ARFCN %u) TS=%u TA=%u TSC=%u TFI=%d USF=%d\n",</span><br><span style="color: hsl(0, 100%, 40%);">-               trx_no, bts->trx[trx_no].arfcn & ~ARFCN_FLAG_MASK,</span><br><span style="color: hsl(0, 100%, 40%);">-               ts_no, ta, tsc, tbf ? tbf->tfi() : -1, usf);</span><br><span style="color: hsl(0, 100%, 40%);">-            plen = Encoding::write_immediate_assignment(</span><br><span style="color: hsl(0, 100%, 40%);">-                    &bts->trx[trx_no].pdch[ts_no], tbf, bv,</span><br><span style="color: hsl(120, 100%, 40%);">+                     trx->trx_no, trx->arfcn & ~ARFCN_FLAG_MASK,</span><br><span style="color: hsl(120, 100%, 40%);">+                 pdch->ts_no, ta, tsc, tbf ? tbf->tfi() : -1, usf);</span><br><span style="color: hsl(120, 100%, 40%);">+         plen = Encoding::write_immediate_assignment(pdch, tbf, bv,</span><br><span>                   false, rip->ra, Fn, ta, usf, false, sb_fn,</span><br><span>                        bts_get_ms_pwr_alpha(bts), bts->pcu->vty.gamma, -1,</span><br><span>                    rip->burst_type);</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-pcu/+/25812">change 25812</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/osmo-pcu/+/25812"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-pcu </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I476814d0f7be4b53f66211bb472700fee4f2caa9 </div>
<div style="display:none"> Gerrit-Change-Number: 25812 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: dexter <pmaier@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>