aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/bsc_api.c
diff options
context:
space:
mode:
Diffstat (limited to 'openbsc/src/bsc_api.c')
-rw-r--r--openbsc/src/bsc_api.c16
1 files changed, 7 insertions, 9 deletions
diff --git a/openbsc/src/bsc_api.c b/openbsc/src/bsc_api.c
index 576440f9d..ba6dd8852 100644
--- a/openbsc/src/bsc_api.c
+++ b/openbsc/src/bsc_api.c
@@ -189,20 +189,18 @@ int gsm0808_cipher_mode(struct gsm_subscriber_connection *conn, int cipher,
*/
int gsm0808_clear(struct gsm_subscriber_connection* conn)
{
- struct gsm_lchan *lchan;
+ if (conn->ho_lchan)
+ bsc_clear_handover(conn);
+
+ if (conn->lchan) {
+ lchan_release(conn->lchan, 1, 0);
+ conn->lchan->conn = NULL;
+ }
- lchan = conn->lchan;
conn->lchan = NULL;
conn->ho_lchan = NULL;
conn->bts = NULL;
- if (conn->ho_lchan)
- bsc_clear_handover(conn);
- if (conn->lchan)
- lchan_release(lchan, 1, 0);
- conn->lchan->conn = NULL;
- conn->lchan = NULL;
-
return 0;
}