diff options
author | Denis Kenzior <denkenz@gmail.com> | 2009-12-02 15:43:08 -0600 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2009-12-02 19:10:07 -0600 |
commit | b787745b009e500dcd94cd718021b0fea4cdfa11 (patch) | |
tree | a93ac1c6eda98d9d337d63a68fe16bc6e25112ac | |
parent | 6266e3f67963088b27c1ed31292278dbc4ebf9d1 (diff) | |
download | ofono-b787745b009e500dcd94cd718021b0fea4cdfa11.tar.bz2 |
Fix: unregister modem when unregistering driver
-rw-r--r-- | src/modem.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/modem.c b/src/modem.c index ec723e50..012c249f 100644 --- a/src/modem.c +++ b/src/modem.c @@ -1219,7 +1219,19 @@ int ofono_modem_driver_register(const struct ofono_modem_driver *d) void ofono_modem_driver_unregister(const struct ofono_modem_driver *d) { + GSList *l; + struct ofono_modem *modem; + DBG("driver: %p, name: %s", d, d->name); g_driver_list = g_slist_remove(g_driver_list, (void *)d); + + for (l = g_modem_list; l; l = l->next) { + modem = l->data; + + if (modem->driver != d) + continue; + + modem_unregister(modem); + } } |