aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--openbsc/src/gprs/gprs_sgsn.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/openbsc/src/gprs/gprs_sgsn.c b/openbsc/src/gprs/gprs_sgsn.c
index 2b78d315c..acf37a28b 100644
--- a/openbsc/src/gprs/gprs_sgsn.c
+++ b/openbsc/src/gprs/gprs_sgsn.c
@@ -191,6 +191,9 @@ void sgsn_mm_ctx_free(struct sgsn_mm_ctx *mm)
osmo_timer_del(&mm->timer);
}
+ /* Unlink from global list of MM contexts */
+ llist_del(&mm->list);
+
/* Detach from subscriber which is possibly freed then */
if (mm->subscr) {
struct gsm_subscriber *subscr = mm->subscr;
@@ -199,9 +202,6 @@ void sgsn_mm_ctx_free(struct sgsn_mm_ctx *mm)
gprs_subscr_delete(subscr);
}
- /* Unlink from global list of MM contexts */
- llist_del(&mm->list);
-
/* Free all PDP contexts */
llist_for_each_entry_safe(pdp, pdp2, &mm->pdp_list, list)
sgsn_pdp_ctx_free(pdp);