aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@lanedo.com>2013-03-01 18:21:19 +0100
committerAleksander Morgado <aleksander@lanedo.com>2013-03-01 18:21:19 +0100
commit9ee9845b1ebbb29a7540eb5adb6ee03cbe030b2d (patch)
tree9d29aeaa2bf0a8ff4407b961dbbe729c5ae9039e
parentf93bba25f2ef41af8f28296c8f8b2be81c42bdb6 (diff)
iface-modem-3gpp: avoid re-setting deferred registration update while disabling
Don't clear the current deferred registration update until having disabled and cleaned up unsolicited registrations state messages, or we may end up re-setting the deferred registration update again meanwhile
-rw-r--r--src/mm-iface-modem-3gpp.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/mm-iface-modem-3gpp.c b/src/mm-iface-modem-3gpp.c
index 1d3fdce4..6c8bb147 100644
--- a/src/mm-iface-modem-3gpp.c
+++ b/src/mm-iface-modem-3gpp.c
@@ -1347,6 +1347,7 @@ typedef enum {
DISABLING_STEP_PERIODIC_REGISTRATION_CHECKS,
DISABLING_STEP_DISABLE_UNSOLICITED_REGISTRATION_EVENTS,
DISABLING_STEP_CLEANUP_UNSOLICITED_REGISTRATION_EVENTS,
+ DISABLING_STEP_CLEANUP_DEFERRED_REGISTRATION_UPDATE,
DISABLING_STEP_CLEANUP_UNSOLICITED_EVENTS,
DISABLING_STEP_DISABLE_UNSOLICITED_EVENTS,
DISABLING_STEP_REGISTRATION_STATE,
@@ -1419,8 +1420,6 @@ interface_disabling_step (DisablingContext *ctx)
case DISABLING_STEP_PERIODIC_REGISTRATION_CHECKS:
/* Disable periodic registration checks, if they were set */
periodic_registration_check_disable (ctx->self);
- /* Prevent any deferred registration state update from happening after the modem is disabled */
- clear_deferred_registration_state_update (ctx->self);
/* Fall down to next step */
ctx->step++;
@@ -1462,6 +1461,12 @@ interface_disabling_step (DisablingContext *ctx)
/* Fall down to next step */
ctx->step++;
+ case DISABLING_STEP_CLEANUP_DEFERRED_REGISTRATION_UPDATE:
+ /* Prevent any deferred registration state update from happening after the modem is disabled */
+ clear_deferred_registration_state_update (ctx->self);
+ /* Fall down to next step */
+ ctx->step++;
+
case DISABLING_STEP_CLEANUP_UNSOLICITED_EVENTS:
if (MM_IFACE_MODEM_3GPP_GET_INTERFACE (ctx->self)->cleanup_unsolicited_events &&
MM_IFACE_MODEM_3GPP_GET_INTERFACE (ctx->self)->cleanup_unsolicited_events_finish) {