summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/hsomodem/gprs-context.c6
-rw-r--r--drivers/hsomodem/radio-settings.c4
2 files changed, 7 insertions, 3 deletions
diff --git a/drivers/hsomodem/gprs-context.c b/drivers/hsomodem/gprs-context.c
index 08c662fb..eedb7033 100644
--- a/drivers/hsomodem/gprs-context.c
+++ b/drivers/hsomodem/gprs-context.c
@@ -363,9 +363,9 @@ static int hso_gprs_context_probe(struct ofono_gprs_context *gc,
struct gprs_context_data *gcd;
gcd = g_new0(struct gprs_context_data, 1);
- gcd->chat = chat;
+ gcd->chat = g_at_chat_clone(chat);
- g_at_chat_register(chat, "_OWANCALL:", owancall_notifier,
+ g_at_chat_register(gcd->chat, "_OWANCALL:", owancall_notifier,
FALSE, gc, NULL);
ofono_gprs_context_set_data(gc, gcd);
@@ -378,6 +378,8 @@ static void hso_gprs_context_remove(struct ofono_gprs_context *gc)
struct gprs_context_data *gcd = ofono_gprs_context_get_data(gc);
ofono_gprs_context_set_data(gc, NULL);
+
+ g_at_chat_unref(gcd->chat);
g_free(gcd);
}
diff --git a/drivers/hsomodem/radio-settings.c b/drivers/hsomodem/radio-settings.c
index 0b6a874c..3456339b 100644
--- a/drivers/hsomodem/radio-settings.c
+++ b/drivers/hsomodem/radio-settings.c
@@ -172,7 +172,7 @@ static int hso_radio_settings_probe(struct ofono_radio_settings *rs,
if (!rsd)
return -ENOMEM;
- rsd->chat = chat;
+ rsd->chat = g_at_chat_clone(chat);
ofono_radio_settings_set_data(rs, rsd);
@@ -187,6 +187,8 @@ static void hso_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);
}