aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/transaction.c
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <zecke@selfish.org>2009-11-17 20:42:09 +0100
committerHolger Hans Peter Freyther <zecke@selfish.org>2009-11-20 17:40:28 +0100
commit80fb260a604fe49517d968ae1e9c0cc78a18b5de (patch)
tree8199744f03a992eb549b66cb8d6aa78e366aeb7c /openbsc/src/transaction.c
parent55a0716da7d06860addfba1812c309eac6d82f1a (diff)
[lchan] Release the channel ones its' usecount drops to zero
Remove the timer handling from the LCHAN and release the channel ones the use count is dropping to zero. Change code that was sending/using the lchan after the release and change the send data method to warn in case the lchan is used after it has been freed.
Diffstat (limited to 'openbsc/src/transaction.c')
-rw-r--r--openbsc/src/transaction.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/openbsc/src/transaction.c b/openbsc/src/transaction.c
index 04eaa3c99..03735d4a4 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->lchan)
- put_lchan(trans->lchan);
-
if (!trans->lchan && trans->subscr && trans->subscr->net) {
/* Stop paging on all bts' */
paging_request_stop(NULL, trans->subscr, NULL);
}
+ if (trans->lchan)
+ put_lchan(trans->lchan);
+
if (trans->subscr)
subscr_put(trans->subscr);