aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mm-broadband-modem-qmi.c11
-rw-r--r--src/mm-iface-modem-firmware.c14
2 files changed, 16 insertions, 9 deletions
diff --git a/src/mm-broadband-modem-qmi.c b/src/mm-broadband-modem-qmi.c
index e3b37bd5..21ab8698 100644
--- a/src/mm-broadband-modem-qmi.c
+++ b/src/mm-broadband-modem-qmi.c
@@ -10383,10 +10383,13 @@ firmware_load_current (MMIfaceModemFirmware *_self,
GTask *task;
task = g_task_new (self, NULL, callback, user_data);
- g_task_return_pointer (
- task,
- self->priv->current_firmware ? g_object_ref (self->priv->current_firmware) : NULL,
- g_object_unref);
+ if (self->priv->current_firmware)
+ g_task_return_pointer (task,
+ g_object_ref (self->priv->current_firmware),
+ g_object_unref);
+ else
+ g_task_return_new_error (task, MM_CORE_ERROR, MM_CORE_ERROR_NOT_FOUND,
+ "current firmware unknown");
g_object_unref (task);
}
diff --git a/src/mm-iface-modem-firmware.c b/src/mm-iface-modem-firmware.c
index da106b00..0646f376 100644
--- a/src/mm-iface-modem-firmware.c
+++ b/src/mm-iface-modem-firmware.c
@@ -68,12 +68,16 @@ load_current_ready (MMIfaceModemFirmware *self,
GList *l;
GError *error = NULL;
- /* reported current may be NULL and we don't treat it as error */
ctx->current = MM_IFACE_MODEM_FIRMWARE_GET_INTERFACE (self)->load_current_finish (self, res, &error);
- if (error) {
- g_dbus_method_invocation_take_error (ctx->invocation, error);
- handle_list_context_free (ctx);
- return;
+ if (!ctx->current) {
+ /* Not found isn't fatal */
+ if (!g_error_matches (error, MM_CORE_ERROR, MM_CORE_ERROR_NOT_FOUND)) {
+ g_dbus_method_invocation_take_error (ctx->invocation, error);
+ handle_list_context_free (ctx);
+ return;
+ }
+ mm_dbg ("Couldn't load current firmware image: %s", error->message);
+ g_clear_error (&error);
}
/* Build array of dicts */