diff options
Diffstat (limited to 'src/gprs')
-rw-r--r-- | src/gprs/gprs_gmm.c | 10 | ||||
-rw-r--r-- | src/gprs/gprs_sgsn.c | 4 |
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); } |