X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fnetifd.git;a=blobdiff_plain;f=device.c;h=5b27ce0f5c3693616b7bf23c4123c01f427cec40;hp=ac0954df43b4c227872872e90c8ed74627683c9f;hb=07eab1f9d3b7eb6ed25b01b3b552d1e77aba1dc5;hpb=3de7978b64876a1dc5e3eab8735a801971423820 diff --git a/device.c b/device.c index ac0954d..5b27ce0 100644 --- a/device.c +++ b/device.c @@ -292,7 +292,7 @@ void device_add_user(struct device_user *dep, struct device *dev) static void __device_free_unused(struct device *dev) { - if (!list_empty(&dev->users) || dev->current_config) + if (!list_empty(&dev->users) || dev->current_config || config_init) return; device_free(dev); @@ -424,7 +424,6 @@ device_create(const char *name, const struct device_type *type, struct device *odev = NULL, *dev; enum dev_change_type change; - D(DEVICE, "Create new device '%s' (%s)\n", name, type->name); config = config_memdup(config); if (!config) return NULL; @@ -452,7 +451,8 @@ device_create(const char *name, const struct device_type *type, device_delete(odev); break; } - } + } else + D(DEVICE, "Create new device '%s' (%s)\n", name, type->name); dev = type->create(config); if (!dev)