* [PATCH v3] Fix busylooped in ppp_disconnect for huawei modem
@ 2010-07-28 0:25 Zhenhua Zhang
2010-08-02 19:13 ` Denis Kenzior
0 siblings, 1 reply; 3+ messages in thread
From: Zhenhua Zhang @ 2010-07-28 0:25 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 1532 bytes --]
Huawei modem closes the modem port after PPP disconnect. So the channel
of gatchat is NULL in ppp_disconnect. In such case, we resume the chat
and it causes huawei_disconnect() get called and the gprs context is
removed later.
Before removing this gprs context, we should reply the pending DBus
message to the client.
---
drivers/atmodem/gprs-context.c | 9 +++++++--
1 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/drivers/atmodem/gprs-context.c b/drivers/atmodem/gprs-context.c
index fea80b0..6589560 100644
--- a/drivers/atmodem/gprs-context.c
+++ b/drivers/atmodem/gprs-context.c
@@ -93,7 +93,6 @@ static void ppp_disconnect(GAtPPPDisconnectReason reason, gpointer user_data)
g_at_ppp_unref(gcd->ppp);
gcd->ppp = NULL;
- g_at_chat_resume(gcd->chat);
switch (gcd->state) {
case STATE_ENABLING:
@@ -110,6 +109,12 @@ static void ppp_disconnect(GAtPPPDisconnectReason reason, gpointer user_data)
gcd->active_context = 0;
gcd->state = STATE_IDLE;
+ /*
+ * If the channel of gcd->chat is NULL, it might cause
+ * gprs_context_remove get called and the gprs context will be
+ * removed.
+ */
+ g_at_chat_resume(gcd->chat);
}
static gboolean setup_ppp(struct ofono_gprs_context *gc)
@@ -257,7 +262,7 @@ static void at_gprs_context_remove(struct ofono_gprs_context *gc)
DBG("");
- if (gcd->state != STATE_IDLE) {
+ if (gcd->state != STATE_IDLE && gcd->ppp) {
g_at_ppp_unref(gcd->ppp);
g_at_chat_resume(gcd->chat);
}
--
1.7.0.4
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [PATCH v3] Fix busylooped in ppp_disconnect for huawei modem
2010-07-28 0:25 [PATCH v3] Fix busylooped in ppp_disconnect for huawei modem Zhenhua Zhang
@ 2010-08-02 19:13 ` Denis Kenzior
2010-08-04 12:54 ` Kalle Valo
0 siblings, 1 reply; 3+ messages in thread
From: Denis Kenzior @ 2010-08-02 19:13 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 521 bytes --]
Hi Zhenhua,
On 07/27/2010 07:25 PM, Zhenhua Zhang wrote:
> Huawei modem closes the modem port after PPP disconnect. So the channel
> of gatchat is NULL in ppp_disconnect. In such case, we resume the chat
> and it causes huawei_disconnect() get called and the gprs context is
> removed later.
>
> Before removing this gprs context, we should reply the pending DBus
> message to the client.
> ---
Since V2 was reported to work I went ahead and applied this version.
Thanks for the fix.
Regards,
-Denis
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH v3] Fix busylooped in ppp_disconnect for huawei modem
2010-08-02 19:13 ` Denis Kenzior
@ 2010-08-04 12:54 ` Kalle Valo
0 siblings, 0 replies; 3+ messages in thread
From: Kalle Valo @ 2010-08-04 12:54 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 928 bytes --]
Denis Kenzior <denkenz@gmail.com> writes:
> Hi Zhenhua,
>
> On 07/27/2010 07:25 PM, Zhenhua Zhang wrote:
>> Huawei modem closes the modem port after PPP disconnect. So the channel
>> of gatchat is NULL in ppp_disconnect. In such case, we resume the chat
>> and it causes huawei_disconnect() get called and the gprs context is
>> removed later.
>>
>> Before removing this gprs context, we should reply the pending DBus
>> message to the client.
>> ---
>
> Since V2 was reported to work I went ahead and applied this version.
> Thanks for the fix.
I quickly tested current git (which should contain this patch) with
Huawei E1552 and ofono doesn't crash anymore. But now ofono doesn't
connect after a few rounds of connect, disconnect, connect, disconnect
testing. I need to unplug and plug in my modem to get it working again.
I don't know if this patch caused the regression or not.
--
Kalle Valo
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2010-08-04 12:54 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-07-28 0:25 [PATCH v3] Fix busylooped in ppp_disconnect for huawei modem Zhenhua Zhang
2010-08-02 19:13 ` Denis Kenzior
2010-08-04 12:54 ` Kalle Valo
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.