From: Richard Röjfors <[email protected]>

There was a race condition where a context might be
registered before the netreg status updates to LTE.

The code took for granted the context is activated after
the technology update. With this change, any order is
is accepted.
---
 src/gprs.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/gprs.c b/src/gprs.c
index a8702958..a1e52572 100644
--- a/src/gprs.c
+++ b/src/gprs.c
@@ -1721,12 +1721,18 @@ static void gprs_netreg_update(struct ofono_gprs *gprs)
 
        DBG("attach: %u, driver_attached: %u", attach, gprs->driver_attached);
 
-       if (on_lte(gprs))
+       if (on_lte(gprs)) {
                /*
                 * For LTE we set attached status only on successful
                 * context activation.
+                *
+                * The context could potentially be registered before the netreg
+                * update is received.
                 */
-                return;
+               gprs_attached_update(gprs);
+
+               return;
+       }
 
        if (gprs->driver_attached == attach)
                return;
-- 
2.20.1
_______________________________________________
ofono mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to