aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/gsm_04_11.c
diff options
context:
space:
mode:
Diffstat (limited to 'openbsc/src/gsm_04_11.c')
-rw-r--r--openbsc/src/gsm_04_11.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/openbsc/src/gsm_04_11.c b/openbsc/src/gsm_04_11.c
index 25fe467d6..cf9356cb6 100644
--- a/openbsc/src/gsm_04_11.c
+++ b/openbsc/src/gsm_04_11.c
@@ -140,7 +140,7 @@ static void gsm411_release_conn(struct gsm_subscriber_connection *conn)
if (!conn)
return;
- subscr_put_channel(conn);
+ subscr_put_channel(conn->subscr);
}
struct msgb *gsm411_msgb_alloc(void)
@@ -1187,8 +1187,10 @@ void _gsm411_sms_trans_free(struct gsm_trans *trans)
void gsm411_sapi_n_reject(struct gsm_subscriber_connection *conn)
{
+ struct gsm_subscriber *subscr;
struct gsm_trans *trans, *tmp;
+ subscr = subscr_get(conn->subscr);
llist_for_each_entry_safe(trans, tmp, &conn->bts->network->trans_list, entry)
if (trans->conn == conn) {
struct gsm_sms *sms = trans->sms.sms;
@@ -1203,6 +1205,7 @@ void gsm411_sapi_n_reject(struct gsm_subscriber_connection *conn)
trans_free(trans);
}
- gsm411_release_conn(conn);
+ subscr_put_channel(subscr);
+ subscr_put(subscr);
}