diff options
Diffstat (limited to 'net/core/rtnetlink.c')
| -rw-r--r-- | net/core/rtnetlink.c | 9 | 
1 files changed, 6 insertions, 3 deletions
diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c index 5ef61222fdef..e3f743c141b3 100644 --- a/net/core/rtnetlink.c +++ b/net/core/rtnetlink.c @@ -2759,9 +2759,12 @@ int rtnl_configure_link(struct net_device *dev, const struct ifinfomsg *ifm)  			return err;  	} -	dev->rtnl_link_state = RTNL_LINK_INITIALIZED; - -	__dev_notify_flags(dev, old_flags, ~0U); +	if (dev->rtnl_link_state == RTNL_LINK_INITIALIZED) { +		__dev_notify_flags(dev, old_flags, 0U); +	} else { +		dev->rtnl_link_state = RTNL_LINK_INITIALIZED; +		__dev_notify_flags(dev, old_flags, ~0U); +	}  	return 0;  }  EXPORT_SYMBOL(rtnl_configure_link);  |