aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Eversberg <jolly@eversberg.eu>2013-04-09 10:44:58 +0200
committerAndreas Eversberg <jolly@eversberg.eu>2014-01-21 15:54:13 +0100
commite9e9732473cfebde0fada7147d41b9dcc44419cc (patch)
tree16d221bb4da23347c59a94f335b96351be51be29
parentfc93e748d36902f69ff1fb5066d199af7d09c4eb (diff)
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 2e29bc0e..1f17b47f 100644
--- a/src/osmo-bts-trx/l1_if.c
+++ b/src/osmo-bts-trx/l1_if.c
@@ -79,6 +79,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 e6b70134..1af10b5c 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;