diff options
Diffstat (limited to 'plugins/mm-modem-novatel-cdma.c')
-rw-r--r-- | plugins/mm-modem-novatel-cdma.c | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/plugins/mm-modem-novatel-cdma.c b/plugins/mm-modem-novatel-cdma.c index 6b8c4aa..c1f4151 100644 --- a/plugins/mm-modem-novatel-cdma.c +++ b/plugins/mm-modem-novatel-cdma.c @@ -122,16 +122,15 @@ get_rssi_done (MMAtSerialPort *port, MMModemCdma *parent_iface; int qual; - info->error = mm_modem_check_removed (info->modem, error); - if (info->error) { - if (info->modem) { - /* Fallback to parent's method */ - g_clear_error (&info->error); - parent_iface = g_type_interface_peek_parent (MM_MODEM_CDMA_GET_INTERFACE (info->modem)); - parent_iface->get_signal_quality (MM_MODEM_CDMA (info->modem), parent_csq_done, info); - } else - mm_callback_info_schedule (info); + /* If the modem has already been removed, return without + * scheduling callback */ + if (mm_callback_info_check_modem_removed (info)) + return; + if (error) { + /* Fallback to parent's method */ + parent_iface = g_type_interface_peek_parent (MM_MODEM_CDMA_GET_INTERFACE (info->modem)); + parent_iface->get_signal_quality (MM_MODEM_CDMA (info->modem), parent_csq_done, info); return; } @@ -149,7 +148,7 @@ get_rssi_done (MMAtSerialPort *port, info->error = g_error_new (MM_MODEM_ERROR, MM_MODEM_ERROR_GENERAL, "%s", "Could not parse signal quality results"); } - + mm_callback_info_schedule (info); } |