Merge lp:~awe/phablet-extras/ofono-lp1188404 into lp:phablet-extras/ofono
Status: | Merged | ||||
---|---|---|---|---|---|
Approved by: | Ricardo Salveti | ||||
Approved revision: | 48 | ||||
Merged at revision: | 47 | ||||
Proposed branch: | lp:~awe/phablet-extras/ofono-lp1188404 | ||||
Merge into: | lp:phablet-extras/ofono | ||||
Diff against target: |
67 lines (+7/-28) 2 files modified
debian/changelog (+6/-0) drivers/rilmodem/gprs.c (+1/-28) |
||||
To merge this branch: | bzr merge lp:~awe/phablet-extras/ofono-lp1188404 | ||||
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Martin Pitt | Approve | ||
Ricardo Salveti (community) | Approve | ||
PS Jenkins bot | continuous-integration | Approve | |
Tiago Salem Herrmann | Pending | ||
Review via email: mp+174516@code.launchpad.net |
Commit message
[rilmodem] Fix GPRS tight loop when roaming (LP: 1188404).
Description of the change
This changes fixes a bug when roaming which created a tight loop.
The callback for a RIL_REQ_
The status_notify call in turn triggered another DATA_REGISTRATI
I also discovered that there's no need to listen for an UNSOL_VOICE_
I tested the code on a mako with an image from earlier this week, by modifying the code to always return a status of ROAMING if REGISTERED. I will attach a diff in a comment to the MR.
My test cases, were non-roaming, roaming without 'AllowRoaming' set, and roaming with 'AllowRoaming' set. All work as expected now.
The following patch will force the status to ROAMING, instead of REGISTERED:
=== modified file 'drivers/ rilmodem/ gprs.c' rilmodem/ gprs.c 2013-07-10 23:08:34 +0000 rilmodem/ gprs.c 2013-07-13 00:50:38 +0000 gprs_set_ cid_range( gprs, 1, max_cids);
--- drivers/
+++ drivers/
@@ -166,6 +166,12 @@
ofono_
}
+ if (status == NETWORK_ REGISTRATION_ STATUS_ REGISTERED) { REGISTRATION_ STATUS_ ROAMING;
+ DBG("converting status to ROAMING!");
+ status = NETWORK_
+ }
+
+ /* Do we need to save either???*/
gd->status = status;
gd->tech = tech;
=== modified file 'drivers/ rilmodem/ network- registration. c' rilmodem/ network- registration. c 2013-06-14 16:11:01 +0000 rilmodem/ network- registration. c 2013-07-13 00:50:20 +0000
--- drivers/
+++ drivers/
@@ -104,6 +104,11 @@
return;
}
+ if (status == NETWORK_ REGISTRATION_ STATUS_ REGISTERED) { REGISTRATION_ STATUS_ ROAMING;
return;
+ DBG("converting status to ROAMING!");
+ status = NETWORK_
+ }
+
nd->tech = tech;
cb(&error, status, lac, ci, tech, cbd->data);
}
@@ -118,6 +123,11 @@
}
+ if (status == NETWORK_ REGISTRATION_ STATUS_ REGISTERED) { REGISTRATION_ STATUS_ ROAMING; netreg_ status_ notify( netreg, status, lac, ci, tech);
+ DBG("converting status to ROAMING!");
+ status = NETWORK_
+ }
+
ofono_
}