From 7528a6096d7afb4384193f1df737759135852f41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Richard=20R=C3=B6jfors?= Date: Fri, 11 Oct 2019 12:29:17 -0500 Subject: [PATCH] gprs: update attached on netreg updates when running LTE 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 | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/gprs.c b/src/gprs.c index a8702958..170f615e 100644 --- a/src/gprs.c +++ b/src/gprs.c @@ -1721,12 +1721,17 @@ 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;