From 11fa1ea5d08e53825d3f9886cc52cb76e54f6906 Mon Sep 17 00:00:00 2001 From: Daniel Lezcano Date: Fri, 2 May 2008 17:00:58 -0700 Subject: [PATCH] --- yaml --- r: 95911 b: refs/heads/master c: aaf8cdc34ddba08122f02217d9d684e2f9f5d575 h: refs/heads/master i: 95909: 10f89840d1113d613cd35f5390d7bfe5e28769cd 95907: 3a13ecb53fb95d2ff5623fed98c31a82372d9a1a 95903: b9062689af0c4eea96b9e26d727cb3046b84149c v: v3 --- [refs] | 2 +- trunk/net/core/dev.c | 4 +++- trunk/net/core/net-sysfs.c | 7 ++++++- trunk/net/core/net-sysfs.h | 2 +- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index c25d716fe19c..05b97e0671b7 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 705d209168681b4408d10fca7257de3343be573d +refs/heads/master: aaf8cdc34ddba08122f02217d9d684e2f9f5d575 diff --git a/trunk/net/core/dev.c b/trunk/net/core/dev.c index a9500e6b3aa2..d334446a8eaf 100644 --- a/trunk/net/core/dev.c +++ b/trunk/net/core/dev.c @@ -3776,6 +3776,7 @@ int register_netdevice(struct net_device *dev) } } + netdev_initialize_kobject(dev); ret = netdev_register_kobject(dev); if (ret) goto err_uninit; @@ -4208,7 +4209,8 @@ int dev_change_net_namespace(struct net_device *dev, struct net *net, const char } /* Fixup kobjects */ - err = device_rename(&dev->dev, dev->name); + netdev_unregister_kobject(dev); + err = netdev_register_kobject(dev); WARN_ON(err); /* Add the device back in the hashes */ diff --git a/trunk/net/core/net-sysfs.c b/trunk/net/core/net-sysfs.c index 4e7b847347f7..90e2177af081 100644 --- a/trunk/net/core/net-sysfs.c +++ b/trunk/net/core/net-sysfs.c @@ -449,7 +449,6 @@ int netdev_register_kobject(struct net_device *net) struct device *dev = &(net->dev); struct attribute_group **groups = net->sysfs_groups; - device_initialize(dev); dev->class = &net_class; dev->platform_data = net; dev->groups = groups; @@ -470,6 +469,12 @@ int netdev_register_kobject(struct net_device *net) return device_add(dev); } +void netdev_initialize_kobject(struct net_device *net) +{ + struct device *device = &(net->dev); + device_initialize(device); +} + int netdev_kobject_init(void) { return class_register(&net_class); diff --git a/trunk/net/core/net-sysfs.h b/trunk/net/core/net-sysfs.h index f5f108db3924..14e7524260b3 100644 --- a/trunk/net/core/net-sysfs.h +++ b/trunk/net/core/net-sysfs.h @@ -4,5 +4,5 @@ int netdev_kobject_init(void); int netdev_register_kobject(struct net_device *); void netdev_unregister_kobject(struct net_device *); - +void netdev_initialize_kobject(struct net_device *); #endif