From 82676c13ee9ab2b73f089acf811239f8e37fa0fd Mon Sep 17 00:00:00 2001 From: Andreas Eversberg Date: Tue, 9 Apr 2013 10:44:58 +0200 Subject: [PATCH] TRX: Fix: Cleanly free TRX instances during initialization in case of an error --- src/osmo-bts-trx/l1_if.c | 1 + src/osmo-bts-trx/trx_if.c | 6 +++--- 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 676a67625..8b00856ab 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 e6b70134a..1af10b5c6 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;