aboutsummaryrefslogtreecommitdiffstats
path: root/src/gprs
diff options
context:
space:
mode:
Diffstat (limited to 'src/gprs')
-rw-r--r--src/gprs/gprs_gmm.c10
-rw-r--r--src/gprs/gprs_sgsn.c4
2 files changed, 11 insertions, 3 deletions
diff --git a/src/gprs/gprs_gmm.c b/src/gprs/gprs_gmm.c
index 6a5c5d9f3..9d8a8695a 100644
--- a/src/gprs/gprs_gmm.c
+++ b/src/gprs/gprs_gmm.c
@@ -2192,6 +2192,16 @@ static void pdpctx_timer_stop(struct sgsn_pdp_ctx *pdp, unsigned int T)
osmo_timer_del(&pdp->timer);
}
+void pdp_ctx_detach_mm_ctx(struct sgsn_pdp_ctx *pdp)
+{
+ /* Detach from MM context */
+ llist_del(&pdp->list);
+ pdp->mm = NULL;
+
+ /* stop timer 3395 */
+ pdpctx_timer_stop(pdp, 3395);
+}
+
#if 0
static void msgb_put_pdp_addr_ipv4(struct msgb *msg, uint32_t ipaddr)
{
diff --git a/src/gprs/gprs_sgsn.c b/src/gprs/gprs_sgsn.c
index 55ce09616..ab5e79ab6 100644
--- a/src/gprs/gprs_sgsn.c
+++ b/src/gprs/gprs_sgsn.c
@@ -443,9 +443,7 @@ void sgsn_pdp_ctx_terminate(struct sgsn_pdp_ctx *pdp)
osmo_signal_dispatch(SS_SGSN, S_SGSN_PDP_TERMINATE, &sig_data);
/* Detach from MM context */
- llist_del(&pdp->list);
- pdp->mm = NULL;
-
+ pdp_ctx_detach_mm_ctx(pdp);
sgsn_delete_pdp_ctx(pdp);
}