aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Eversberg <jolly@eversberg.eu>2013-04-09 10:44:58 +0200
committerHarald Welte <laforge@gnumonks.org>2015-09-22 16:41:28 +0200
commit82676c13ee9ab2b73f089acf811239f8e37fa0fd (patch)
treead061a101f41e0f63f0a16214961963e11c9a93f
parentc2ee307fd42975b63317e9d4944e5822286cc69b (diff)
TRX: Fix: Cleanly free TRX instances during initialization in case of an error
-rw-r--r--src/osmo-bts-trx/l1_if.c1
-rw-r--r--src/osmo-bts-trx/trx_if.c6
2 files changed, 4 insertions, 3 deletions
diff --git a/src/osmo-bts-trx/l1_if.c b/src/osmo-bts-trx/l1_if.c
index 676a676..8b00856 100644
--- a/src/osmo-bts-trx/l1_if.c
+++ b/src/osmo-bts-trx/l1_if.c
@@ -80,6 +80,7 @@ struct trx_l1h *l1if_open(struct gsm_bts_trx *trx)
err:
l1if_close(l1h);
+ trx->role_bts.l1h = NULL;
return NULL;
}
diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c
index e6b7013..1af10b5 100644
--- a/src/osmo-bts-trx/trx_if.c
+++ b/src/osmo-bts-trx/trx_if.c
@@ -473,6 +473,9 @@ int trx_if_open(struct trx_l1h *l1h)
LOGP(DTRX, LOGL_NOTICE, "Open tranceiver for trx=%u\n", l1h->trx->nr);
+ /* initialize ctrl queue */
+ INIT_LLIST_HEAD(&l1h->trx_ctrl_list);
+
/* open sockets */
if (l1h->trx->nr == 0) {
rc = trx_udp_open(NULL, &trx_ofd_clk, base_port_local,
@@ -490,9 +493,6 @@ int trx_if_open(struct trx_l1h *l1h)
if (rc < 0)
goto err;
- /* initialize ctrl queue */
- INIT_LLIST_HEAD(&l1h->trx_ctrl_list);
-
/* enable all slots */
l1h->config.slotmask = 0xff;