wireless: rework and fix vlan/station config reload handling
[project/netifd.git] / alias.c
diff --git a/alias.c b/alias.c
index 3b14b87b2154b0011fdc2410ee3e7a76947d27be..98d54100fef9294eae187275b934850a3a054098 100644 (file)
--- a/alias.c
+++ b/alias.c
@@ -124,7 +124,11 @@ alias_device_create(const char *name, struct device_type *devtype,
        strcpy(alias->name, name);
        alias->dev.set_state = alias_device_set_state;
        alias->dev.hidden = true;
-       device_init_virtual(&alias->dev, devtype, NULL);
+       if (device_init_virtual(&alias->dev, devtype, NULL) < 0) {
+               free(alias);
+               return NULL;
+       }
+
        alias->avl.key = alias->name;
        avl_insert(&aliases, &alias->avl);
        alias->dep.alias = true;
@@ -174,13 +178,9 @@ alias_notify_device(const char *name, struct device *dev)
 {
        struct alias_device *alias;
 
-       device_lock();
-
        alias = avl_find_element(&aliases, name, alias, avl);
        if (alias)
                alias_set_device(alias, dev);
-
-       device_unlock();
 }
 
 struct device *