diff options
-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) | |||
2759 | return err; | 2759 | return err; |
2760 | } | 2760 | } |
2761 | 2761 | ||
2762 | dev->rtnl_link_state = RTNL_LINK_INITIALIZED; | 2762 | if (dev->rtnl_link_state == RTNL_LINK_INITIALIZED) { |
2763 | 2763 | __dev_notify_flags(dev, old_flags, 0U); | |
2764 | __dev_notify_flags(dev, old_flags, ~0U); | 2764 | } else { |
2765 | dev->rtnl_link_state = RTNL_LINK_INITIALIZED; | ||
2766 | __dev_notify_flags(dev, old_flags, ~0U); | ||
2767 | } | ||
2765 | return 0; | 2768 | return 0; |
2766 | } | 2769 | } |
2767 | EXPORT_SYMBOL(rtnl_configure_link); | 2770 | EXPORT_SYMBOL(rtnl_configure_link); |