aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/gsm_04_08.c
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <zecke@selfish.org>2010-06-16 12:52:28 +0800
committerHolger Hans Peter Freyther <zecke@selfish.org>2010-06-16 15:42:21 +0800
commit01288435919b0f5f201dbf41cbff3745cc18f3db (patch)
tree001840e41c200a81784cf90be7b6f7aa66d3288e /openbsc/src/gsm_04_08.c
parent228c1059fd323f0c6d95d0b64d698e3d8bff9a55 (diff)
gsm48: Release the "operation" after sending out data...
* With an immediate release we would release the lchan before sending the data... change it.
Diffstat (limited to 'openbsc/src/gsm_04_08.c')
-rw-r--r--openbsc/src/gsm_04_08.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/openbsc/src/gsm_04_08.c b/openbsc/src/gsm_04_08.c
index 0574532d0..b9249f295 100644
--- a/openbsc/src/gsm_04_08.c
+++ b/openbsc/src/gsm_04_08.c
@@ -250,7 +250,6 @@ static int _gsm0408_authorize_sec_cb(unsigned int hooknum, unsigned int event,
case GSM_SECURITY_SUCCEEDED:
/* We're all good */
db_subscriber_alloc_tmsi(conn->subscr);
- release_loc_updating_req(conn);
rc = gsm0408_loc_upd_acc(conn, conn->subscr->tmsi);
if (conn->bts->network->send_mm_info) {
/* send MM INFO with network name */
@@ -264,8 +263,8 @@ static int _gsm0408_authorize_sec_cb(unsigned int hooknum, unsigned int event,
GSM_SUBSCRIBER_UPDATE_ATTACHED);
/* try to close channel ASAP */
+ release_loc_updating_req(conn);
lchan_auto_release(conn->lchan);
-
break;
default:
@@ -427,8 +426,8 @@ static void loc_upd_rej_cb(void *data)
struct gsm_lchan *lchan = conn->lchan;
struct gsm_bts *bts = lchan->ts->trx->bts;
- release_loc_updating_req(conn);
gsm0408_loc_upd_rej(conn, bts->network->reject_cause);
+ release_loc_updating_req(conn);
lchan_auto_release(lchan);
}