netifd: Check interface state only when main device is set during interface_change_config
[project/netifd.git] / interface.c
index 65bc37d..a4d7b8d 100644 (file)
@@ -780,6 +780,7 @@ interface_set_main_dev(struct interface *iface, struct device *dev)
        if (iface->main_dev.dev == dev)
                return;
 
+       interface_set_available(iface, false);
        device_add_user(&iface->main_dev, dev);
        if (!dev) {
                interface_set_link_state(iface, false);
@@ -1019,7 +1020,8 @@ interface_change_config(struct interface *if_old, struct interface *if_new)
        }
 
        interface_write_resolv_conf();
-       interface_check_state(if_old);
+       if (if_old->main_dev.dev)
+               interface_check_state(if_old);
 
 out:
        if_new->config = NULL;