diff options
-rw-r--r-- | openbsc/src/transaction.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/openbsc/src/transaction.c b/openbsc/src/transaction.c index 9f1bbf36d..026928876 100644 --- a/openbsc/src/transaction.c +++ b/openbsc/src/transaction.c @@ -152,7 +152,12 @@ int trans_lchan_change(struct gsm_lchan *lchan_old, llist_for_each_entry(trans, &net->trans_list, entry) { if (trans->lchan == lchan_old) { + /* drop old channel use cound */ + put_lchan(trans->lchan); + /* assign new channel */ trans->lchan = lchan_new; + /* bump new channel use count */ + use_lchan(trans->lchan); num++; } } |