allow temporary duplicates of devices
[project/netifd.git] / device.c
index f9ad25a..e953432 100644 (file)
--- a/device.c
+++ b/device.c
@@ -99,7 +99,7 @@ device_init_settings(struct device *dev, struct blob_attr **tb)
 
 static void __init dev_init(void)
 {
 
 static void __init dev_init(void)
 {
-       avl_init(&devices, avl_strcmp, false, NULL);
+       avl_init(&devices, avl_strcmp, true, NULL);
 }
 
 static void device_broadcast_event(struct device *dev, enum device_event ev)
 }
 
 static void device_broadcast_event(struct device *dev, enum device_event ev)
@@ -337,8 +337,8 @@ device_replace(struct device *dev, struct device *odev)
                device_set_present(odev, false);
 
        list_for_each_entry_safe(dep, tmp, &odev->users, list) {
                device_set_present(odev, false);
 
        list_for_each_entry_safe(dep, tmp, &odev->users, list) {
-               list_move_tail(&dep->list, &dev->users);
-               dep->dev = dev;
+               device_remove_user(dep);
+               device_add_user(dep, dev);
        }
        device_free(odev);
 
        }
        device_free(odev);