aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/transaction.c
diff options
context:
space:
mode:
Diffstat (limited to 'openbsc/src/transaction.c')
-rw-r--r--openbsc/src/transaction.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/openbsc/src/transaction.c b/openbsc/src/transaction.c
index 5e0d50796..bd2761b5f 100644
--- a/openbsc/src/transaction.c
+++ b/openbsc/src/transaction.c
@@ -28,6 +28,7 @@
#include <openbsc/gsm_04_08.h>
#include <openbsc/mncc.h>
#include <openbsc/paging.h>
+#include <openbsc/chan_alloc.h>
void *tall_trans_ctx;
@@ -95,14 +96,14 @@ void trans_free(struct gsm_trans *trans)
break;
}
- if (trans->conn)
- put_subscr_con(trans->conn);
-
if (!trans->conn && trans->subscr && trans->subscr->net) {
/* Stop paging on all bts' */
paging_request_stop(NULL, trans->subscr, NULL);
}
+ if (trans->conn)
+ put_subscr_con(trans->conn, 0);
+
if (trans->subscr)
subscr_put(trans->subscr);
@@ -159,7 +160,7 @@ int trans_lchan_change(struct gsm_subscriber_connection *conn_old,
if (trans->conn == conn_old) {
/* drop old channel use count */
- put_subscr_con(conn_old);
+ put_subscr_con(conn_old, 0);
/* assign new channel */
trans->conn = conn_new;
/* bump new channel use count */