device: Reorder cleanup
authorDaniel Wagner <daniel.wagner@bmw-carit.de>
Mon, 25 Jul 2011 14:24:35 +0000 (16:24 +0200)
committerMarcel Holtmann <marcel@holtmann.org>
Mon, 25 Jul 2011 23:22:51 +0000 (01:22 +0200)
If free_network is called before the driver->disable() callback
the device has been removed from the networking structure.

src/device.c

index 39c3fc0..e5bd84d 100644 (file)
@@ -271,8 +271,6 @@ int __connman_device_disable(struct connman_device *device)
 
        clear_scan_trigger(device);
 
-       g_hash_table_remove_all(device->networks);
-
        err = device->driver->disable(device);
        if (err < 0 && err != -EALREADY) {
                if (err == -EINPROGRESS)
@@ -280,6 +278,8 @@ int __connman_device_disable(struct connman_device *device)
                return err;
        }
 
+       g_hash_table_remove_all(device->networks);
+
        device->connections = 0;
 
        device->powered_pending = FALSE;