aboutsummaryrefslogtreecommitdiff
path: root/src/mm-broadband-modem.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mm-broadband-modem.c')
-rw-r--r--src/mm-broadband-modem.c32
1 files changed, 9 insertions, 23 deletions
diff --git a/src/mm-broadband-modem.c b/src/mm-broadband-modem.c
index 02fd0e2d..0cef006e 100644
--- a/src/mm-broadband-modem.c
+++ b/src/mm-broadband-modem.c
@@ -12665,28 +12665,19 @@ initialize_step (GTask *task)
if (ctx->self->priv->modem_state == MM_MODEM_STATE_FAILED) {
GError *error = NULL;
- if (ctx->self->priv->modem_dbus_skeleton) {
+ if (!ctx->self->priv->modem_dbus_skeleton) {
+ /* ABORTED here specifies an extremely fatal error that will make the modem
+ * not even exported in DBus */
+ error = g_error_new (MM_CORE_ERROR, MM_CORE_ERROR_ABORTED,
+ "Fatal error: modem is unusable");
+ } else {
/* Fatal SIM, firmware, or modem failure :-( */
- gboolean is_sim_hot_swap_supported = FALSE;
MMModemStateFailedReason reason;
reason = mm_gdbus_modem_get_state_failed_reason (MM_GDBUS_MODEM (ctx->self->priv->modem_dbus_skeleton));
-
- g_object_get (ctx->self,
- MM_IFACE_MODEM_SIM_HOT_SWAP_SUPPORTED, &is_sim_hot_swap_supported,
- NULL);
-
- if (reason == MM_MODEM_STATE_FAILED_REASON_SIM_MISSING) {
- if (!is_sim_hot_swap_supported) {
- mm_obj_dbg (ctx->self, "SIM is missing, but this modem does not support SIM hot swap.");
- } else {
- mm_obj_dbg (ctx->self, "SIM is missing, but SIM hot swap is enabled; waiting for SIM...");
- error = g_error_new (MM_CORE_ERROR,
- MM_CORE_ERROR_WRONG_STATE,
- "Modem is unusable due to SIM missing, "
- "cannot fully initialize, waiting for SIM insertion.");
- }
- }
+ error = g_error_new (MM_CORE_ERROR, MM_CORE_ERROR_WRONG_STATE,
+ "Modem in failed state: %s",
+ mm_modem_state_failed_reason_get_string (reason));
/* Ensure we only leave the Modem, Voice and Firmware interfaces
* around. A failure could be caused by firmware issues, which
@@ -12705,11 +12696,6 @@ initialize_step (GTask *task)
mm_iface_modem_simple_shutdown (MM_IFACE_MODEM_SIMPLE (ctx->self));
}
- if (!error)
- error = g_error_new (MM_CORE_ERROR,
- MM_CORE_ERROR_ABORTED,
- "Modem is unusable, cannot fully initialize");
-
g_task_return_error (task, error);
g_object_unref (task);
return;