Signed-off-by: Felix Fietkau <nbd@openwrt.org>
s->dadtransmits : os->dadtransmits;
n->multicast_to_unicast = s->multicast_to_unicast;
n->multicast_router = s->multicast_router;
- n->flags = s->flags | os->flags;
+ n->flags = s->flags | os->flags | os->valid_flags;
}
void
struct device_settings {
unsigned int flags;
+ unsigned int valid_flags;
unsigned int mtu;
unsigned int mtu6;
unsigned int txqueuelen;
{
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);