This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
osmith gerrit-no-reply at lists.osmocom.orgHello fixeria, I'd like you to do a code review. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/24313 to review the following change. Change subject: osmo-bts-trx: fix hopping pointer bug in bts_sched_fn() ...................................................................... osmo-bts-trx: fix hopping pointer bug in bts_sched_fn() In change [1] together with the actual implementation I introduced a serious bug to bts_sched_fn(): if a timeslot is configured to use frequency hopping, both 'pinst' and 'l1h' pointers are *overwriten* in the inner loop, so the Downlink burst is re-directed to the approproate PHY instance. However, if a subsequent timeslot is not hopping, the Downlink burst would be re-directed to the wrong PHY instance because both pointers were overwriten during a previous iteration. Let's move the 'struct phy_instance' pointer to the inner loop, so it's properly re-initialized for each timeslot iteration. Change-Id: I9afbbef8dc5d885763356470c27d4392dce8e815 Fixes: [1] I68f4ae09fd0789ad0d8f1c1e17e17dfc4de8e462 Related: SYS#4868, OS#4546 --- M src/osmo-bts-trx/scheduler_trx.c 1 file changed, 5 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/13/24313/1 diff --git a/src/osmo-bts-trx/scheduler_trx.c b/src/osmo-bts-trx/scheduler_trx.c index 7d5cbfc..3f7dc29 100644 --- a/src/osmo-bts-trx/scheduler_trx.c +++ b/src/osmo-bts-trx/scheduler_trx.c @@ -107,9 +107,8 @@ /* process every TRX */ llist_for_each_entry(trx, &bts->trx_list, list) { - struct phy_instance *pinst = trx->pinst; - struct phy_link *plink = pinst->phy_link; - struct trx_l1h *l1h = pinst->u.osmotrx.hdl; + const struct phy_link *plink = trx->pinst->phy_link; + struct trx_l1h *l1h = trx->pinst->u.osmotrx.hdl; struct l1sched_trx *l1t = &l1h->l1s; /* we don't schedule, if power is off */ @@ -122,6 +121,8 @@ /* process every TS of TRX */ for (tn = 0; tn < ARRAY_SIZE(l1t->ts); tn++) { + const struct phy_instance *pinst = trx->pinst; + /* ready-to-send */ _sched_rts(l1t, tn, GSM_TDMA_FN_SUM(sched_fn, plink->u.osmotrx.rts_advance)); @@ -143,7 +144,6 @@ pinst = dlfh_route_br(&br, &trx->ts[tn]); if (pinst == NULL) continue; - l1h = pinst->u.osmotrx.hdl; } if (pinst->trx == bts->c0) { @@ -153,7 +153,7 @@ br.att = 0; } - trx_if_send_burst(l1h, &br); + trx_if_send_burst(pinst->u.osmotrx.hdl, &br); } } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/24313 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: 2021q1 Gerrit-Change-Id: I9afbbef8dc5d885763356470c27d4392dce8e815 Gerrit-Change-Number: 24313 Gerrit-PatchSet: 1 Gerrit-Owner: osmith <osmith at sysmocom.de> Gerrit-Reviewer: fixeria <vyanitskiy at sysmocom.de> Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20210520/37706d32/attachment.htm>