From 875eb230003145ecc9f71d7352505ac80c566799 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Richard=20R=C3=B6jfors?= Date: Mon, 23 Sep 2019 09:15:46 +0200 Subject: [PATCH] gprs: Do nothing on detached when attaching. Its incorrect to fiddle with the driver attach state when attaching. When attaching the state is transitioning, and the correct state will now always be assigned in the end of the attach process, regardless of result. --- src/gprs.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/gprs.c b/src/gprs.c index 6d9b4cd9..8df983a9 100644 --- a/src/gprs.c +++ b/src/gprs.c @@ -2576,6 +2576,15 @@ void ofono_gprs_detached_notify(struct ofono_gprs *gprs) { DBG("%s", __ofono_atom_get_path(gprs->atom)); + /* + * In case we are attaching let that finish, it will update to the + * correct status. If we fiddle with driver_attach and the + * attach fails, the code will invert back the state to attached, + * which would leave us in an incorrect state. + */ + if (gprs->flags & GPRS_FLAG_ATTACHING) + return; + gprs->driver_attached = FALSE; gprs_attached_update(gprs);