diff --git a/net/core/dev.c b/net/core/dev.c index 7bfea5e9030e1bf9d1b1612bb0cfdd7ced4dfbda..346cbf66534e3fce06abae3ec6cd536eb4d5526f 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -839,8 +839,12 @@ int dev_change_name(struct net_device *dev, char *newname) strlcpy(dev->name, newname, IFNAMSIZ); device_rename(&dev->dev, dev->name); + + write_lock_bh(&dev_base_lock); hlist_del(&dev->name_hlist); hlist_add_head(&dev->name_hlist, dev_name_hash(dev->name)); + write_unlock_bh(&dev_base_lock); + raw_notifier_call_chain(&netdev_chain, NETDEV_CHANGENAME, dev); return err;