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
This commit is contained in:
@@ -1347,6 +1347,7 @@ typedef enum {
|
|||||||
DISABLING_STEP_PERIODIC_REGISTRATION_CHECKS,
|
DISABLING_STEP_PERIODIC_REGISTRATION_CHECKS,
|
||||||
DISABLING_STEP_DISABLE_UNSOLICITED_REGISTRATION_EVENTS,
|
DISABLING_STEP_DISABLE_UNSOLICITED_REGISTRATION_EVENTS,
|
||||||
DISABLING_STEP_CLEANUP_UNSOLICITED_REGISTRATION_EVENTS,
|
DISABLING_STEP_CLEANUP_UNSOLICITED_REGISTRATION_EVENTS,
|
||||||
|
DISABLING_STEP_CLEANUP_DEFERRED_REGISTRATION_UPDATE,
|
||||||
DISABLING_STEP_CLEANUP_UNSOLICITED_EVENTS,
|
DISABLING_STEP_CLEANUP_UNSOLICITED_EVENTS,
|
||||||
DISABLING_STEP_DISABLE_UNSOLICITED_EVENTS,
|
DISABLING_STEP_DISABLE_UNSOLICITED_EVENTS,
|
||||||
DISABLING_STEP_REGISTRATION_STATE,
|
DISABLING_STEP_REGISTRATION_STATE,
|
||||||
@@ -1419,8 +1420,6 @@ interface_disabling_step (DisablingContext *ctx)
|
|||||||
case DISABLING_STEP_PERIODIC_REGISTRATION_CHECKS:
|
case DISABLING_STEP_PERIODIC_REGISTRATION_CHECKS:
|
||||||
/* Disable periodic registration checks, if they were set */
|
/* Disable periodic registration checks, if they were set */
|
||||||
periodic_registration_check_disable (ctx->self);
|
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 */
|
/* Fall down to next step */
|
||||||
ctx->step++;
|
ctx->step++;
|
||||||
|
|
||||||
@@ -1462,6 +1461,12 @@ interface_disabling_step (DisablingContext *ctx)
|
|||||||
/* Fall down to next step */
|
/* Fall down to next step */
|
||||||
ctx->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:
|
case DISABLING_STEP_CLEANUP_UNSOLICITED_EVENTS:
|
||||||
if (MM_IFACE_MODEM_3GPP_GET_INTERFACE (ctx->self)->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) {
|
MM_IFACE_MODEM_3GPP_GET_INTERFACE (ctx->self)->cleanup_unsolicited_events_finish) {
|
||||||
|
Reference in New Issue
Block a user