<p>fixeria has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-bts/+/24176">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">[VAMOS] struct gsm_bts_trx: fix the PHY instance pointer<br><br>First of all, there is no reason to use a void pointer because<br>it's always 'struct phy_instance'.  Also, no need to encapsulate<br>this pointer into 'role_bts' because there are no other roles in<br>osmo-bts (we used to have shared headers years ago).<br><br>Change-Id: I9bd6f0921e0c6bf824d38485486ad78864cbe17e<br>---<br>M include/osmo-bts/bts_trx.h<br>M include/osmo-bts/phy_link.h<br>M src/common/main.c<br>M src/common/phy_link.c<br>M src/common/vty.c<br>M src/osmo-bts-trx/l1_if.h<br>M src/osmo-bts-trx/scheduler_trx.c<br>M tests/sysmobts/sysmobts_test.c<br>8 files changed, 12 insertions(+), 14 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/76/24176/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/include/osmo-bts/bts_trx.h b/include/osmo-bts/bts_trx.h</span><br><span>index 7d60a73..100eaba 100644</span><br><span>--- a/include/osmo-bts/bts_trx.h</span><br><span>+++ b/include/osmo-bts/bts_trx.h</span><br><span>@@ -36,9 +36,8 @@</span><br><span>       struct gsm_power_ctrl_params *ms_dpc_params; /* MS Dynamic Power Control */</span><br><span>  bool ms_pwr_ctl_soft; /* is power control loop done by osmocom software? */</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- struct {</span><br><span style="color: hsl(0, 100%, 40%);">-                void *l1h;</span><br><span style="color: hsl(0, 100%, 40%);">-      } role_bts;</span><br><span style="color: hsl(120, 100%, 40%);">+   /* The associated PHY instance */</span><br><span style="color: hsl(120, 100%, 40%);">+     struct phy_instance *pinst;</span><br><span> </span><br><span>      struct gsm_bts_trx_ts ts[TRX_NR_TS];</span><br><span> };</span><br><span>diff --git a/include/osmo-bts/phy_link.h b/include/osmo-bts/phy_link.h</span><br><span>index 0c693bb..467ad52 100644</span><br><span>--- a/include/osmo-bts/phy_link.h</span><br><span>+++ b/include/osmo-bts/phy_link.h</span><br><span>@@ -173,7 +173,7 @@</span><br><span> static inline struct phy_instance *trx_phy_instance(const struct gsm_bts_trx *trx)</span><br><span> {</span><br><span>         OSMO_ASSERT(trx);</span><br><span style="color: hsl(0, 100%, 40%);">-       return trx->role_bts.l1h;</span><br><span style="color: hsl(120, 100%, 40%);">+  return trx->pinst;</span><br><span> }</span><br><span> </span><br><span> int bts_model_phy_link_open(struct phy_link *plink);</span><br><span>diff --git a/src/common/main.c b/src/common/main.c</span><br><span>index 2503352..73efc25 100644</span><br><span>--- a/src/common/main.c</span><br><span>+++ b/src/common/main.c</span><br><span>@@ -341,7 +341,7 @@</span><br><span>        }</span><br><span> </span><br><span>        llist_for_each_entry(trx, &g_bts->trx_list, list) {</span><br><span style="color: hsl(0, 100%, 40%);">-              if (!trx->role_bts.l1h) {</span><br><span style="color: hsl(120, 100%, 40%);">+          if (!trx->pinst) {</span><br><span>                        fprintf(stderr, "TRX %u has no associated PHY instance\n",</span><br><span>                                 trx->nr);</span><br><span>                         exit(1);</span><br><span>diff --git a/src/common/phy_link.c b/src/common/phy_link.c</span><br><span>index 77d7aa6..411f870 100644</span><br><span>--- a/src/common/phy_link.c</span><br><span>+++ b/src/common/phy_link.c</span><br><span>@@ -118,7 +118,7 @@</span><br><span> </span><br><span> void phy_instance_link_to_trx(struct phy_instance *pinst, struct gsm_bts_trx *trx)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-  trx->role_bts.l1h = pinst;</span><br><span style="color: hsl(120, 100%, 40%);">+ trx->pinst = pinst;</span><br><span>       pinst->trx = trx;</span><br><span> }</span><br><span> </span><br><span>@@ -128,8 +128,8 @@</span><br><span>  llist_del(&pinst->list);</span><br><span> </span><br><span>  /* remove reverse link from TRX */</span><br><span style="color: hsl(0, 100%, 40%);">-      OSMO_ASSERT(pinst->trx->role_bts.l1h == pinst);</span><br><span style="color: hsl(0, 100%, 40%);">-   pinst->trx->role_bts.l1h = NULL;</span><br><span style="color: hsl(120, 100%, 40%);">+        OSMO_ASSERT(pinst->trx->pinst == pinst);</span><br><span style="color: hsl(120, 100%, 40%);">+        pinst->trx->pinst = NULL;</span><br><span>      pinst->trx = NULL;</span><br><span> </span><br><span>    talloc_free(pinst);</span><br><span>diff --git a/src/common/vty.c b/src/common/vty.c</span><br><span>index 9e428e7..3b59316 100644</span><br><span>--- a/src/common/vty.c</span><br><span>+++ b/src/common/vty.c</span><br><span>@@ -987,7 +987,7 @@</span><br><span>               return CMD_WARNING;</span><br><span>  }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   trx->role_bts.l1h = pinst;</span><br><span style="color: hsl(120, 100%, 40%);">+ trx->pinst = pinst;</span><br><span>       pinst->trx = trx;</span><br><span> </span><br><span>     return CMD_SUCCESS;</span><br><span>diff --git a/src/osmo-bts-trx/l1_if.h b/src/osmo-bts-trx/l1_if.h</span><br><span>index 112a6ab..491f7cd 100644</span><br><span>--- a/src/osmo-bts-trx/l1_if.h</span><br><span>+++ b/src/osmo-bts-trx/l1_if.h</span><br><span>@@ -138,8 +138,7 @@</span><br><span> </span><br><span> static inline struct l1sched_trx *trx_l1sched_hdl(struct gsm_bts_trx *trx)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-   struct phy_instance *pinst = trx->role_bts.l1h;</span><br><span style="color: hsl(0, 100%, 40%);">-      struct trx_l1h *l1h = pinst->u.osmotrx.hdl;</span><br><span style="color: hsl(120, 100%, 40%);">+        struct trx_l1h *l1h = trx->pinst->u.osmotrx.hdl;</span><br><span>       return &l1h->l1s;</span><br><span> }</span><br><span> </span><br><span>diff --git a/src/osmo-bts-trx/scheduler_trx.c b/src/osmo-bts-trx/scheduler_trx.c</span><br><span>index efd4954..c173f5b 100644</span><br><span>--- a/src/osmo-bts-trx/scheduler_trx.c</span><br><span>+++ b/src/osmo-bts-trx/scheduler_trx.c</span><br><span>@@ -73,13 +73,13 @@</span><br><span>         /* Check the "cache" first, so we eliminate frequent lookups */</span><br><span>    idx = gsm0502_hop_seq_gen(&time, SCHED_FH_PARAMS_VALS(ts), NULL);</span><br><span>        if (ts->fh_trx_list[idx] != NULL)</span><br><span style="color: hsl(0, 100%, 40%);">-            return ts->fh_trx_list[idx]->role_bts.l1h;</span><br><span style="color: hsl(120, 100%, 40%);">+              return ts->fh_trx_list[idx]->pinst;</span><br><span> </span><br><span>        /* The "cache" may not be filled yet, lookup the transceiver */</span><br><span>    llist_for_each_entry(trx, &ts->trx->bts->trx_list, list) {</span><br><span>              if (trx->arfcn == ts->hopping.arfcn_list[idx]) {</span><br><span>                       ts->fh_trx_list[idx] = trx;</span><br><span style="color: hsl(0, 100%, 40%);">-                  return trx->role_bts.l1h;</span><br><span style="color: hsl(120, 100%, 40%);">+                  return trx->pinst;</span><br><span>                }</span><br><span>    }</span><br><span> </span><br><span>diff --git a/tests/sysmobts/sysmobts_test.c b/tests/sysmobts/sysmobts_test.c</span><br><span>index 4b01ed7..be53666 100644</span><br><span>--- a/tests/sysmobts/sysmobts_test.c</span><br><span>+++ b/tests/sysmobts/sysmobts_test.c</span><br><span>@@ -59,7 +59,7 @@</span><br><span>       memset(&trx, 0, sizeof(trx));</span><br><span>    memset(&hdl, 0, sizeof(hdl));</span><br><span>    trx.bts = &bts;</span><br><span style="color: hsl(0, 100%, 40%);">-     trx.role_bts.l1h = &hdl;</span><br><span style="color: hsl(120, 100%, 40%);">+  trx.pinst = &hdl;</span><br><span> </span><br><span>    /* claim to support all hw_info's */</span><br><span>     hdl.hw_info.band_support = GSM_BAND_850 | GSM_BAND_900 |</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-bts/+/24176">change 24176</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-bts/+/24176"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-bts </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I9bd6f0921e0c6bf824d38485486ad78864cbe17e </div>
<div style="display:none"> Gerrit-Change-Number: 24176 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: fixeria <vyanitskiy@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>