---
drivers/stemodem/radio-settings.c | 15 +++++++++++++--
1 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/drivers/stemodem/radio-settings.c
b/drivers/stemodem/radio-settings.c
index 5b50126..d6ed2e1 100644
--- a/drivers/stemodem/radio-settings.c
+++ b/drivers/stemodem/radio-settings.c
@@ -187,6 +187,15 @@ static void ste_set_rat_mode(struct ofono_radio_settings
*rs,
}
}
+static gboolean ste_radio_settings_register(gpointer user)
+{
+ struct ofono_radio_settings *rs = user;
+
+ ofono_radio_settings_register(rs);
+
+ return FALSE;
+}
+
static int ste_radio_settings_probe(struct ofono_radio_settings *rs,
unsigned int vendor, void *data)
{
@@ -197,10 +206,10 @@ static int ste_radio_settings_probe(struct
ofono_radio_settings *rs,
if (rsd == NULL)
return -ENOMEM;
- rsd->chat = chat;
+ rsd->chat = g_at_chat_clone(chat);
ofono_radio_settings_set_data(rs, rsd);
- ofono_radio_settings_register(rs);
+ g_idle_add(ste_radio_settings_register, rs);
return 0;
}
@@ -209,6 +218,8 @@ static void ste_radio_settings_remove(struct
ofono_radio_settings *rs)
{
struct radio_settings_data *rsd = ofono_radio_settings_get_data(rs);
ofono_radio_settings_set_data(rs, NULL);
+
+ g_at_chat_unref(rsd->chat);
g_free(rsd);
}
--
1.7.0.4
_______________________________________________
ofono mailing list
[email protected]
http://lists.ofono.org/listinfo/ofono