system: mark tunnel_attr_list as extern
[project/netifd.git] / system-linux.c
index 611acb882d4db0fe2f4444f65217ba685d6d4721..d3bb64d7bec93d909ac54d65a0144d586fe54d9f 100644 (file)
@@ -424,7 +424,7 @@ static int cb_rtnl_event(struct nl_msg *msg, void *arg)
                goto out;
 
        struct device *dev = device_get(nla_data(nla[IFLA_IFNAME]), false);
-       if (!dev || dev->type->keep_link_status)
+       if (!dev)
                goto out;
 
        if (!system_get_dev_sysctl("/sys/class/net/%s/carrier", dev->ifname, buf, sizeof(buf)))
@@ -1053,7 +1053,7 @@ int system_vlandev_del(struct device *vlandev)
        return system_link_del(vlandev->ifname);
 }
 
-static void
+void
 system_if_get_settings(struct device *dev, struct device_settings *s)
 {
        struct ifreq ifr;
@@ -1225,6 +1225,7 @@ int system_if_up(struct device *dev)
 {
        system_if_get_settings(dev, &dev->orig_settings);
        /* Only keep orig settings based on what needs to be set */
+       dev->orig_settings.valid_flags = dev->orig_settings.flags;
        dev->orig_settings.flags &= dev->settings.flags;
        system_if_apply_settings(dev, &dev->settings, dev->settings.flags);
        return system_if_flags(dev->ifname, IFF_UP, 0);