提交 43b98c4a 编写于 作者: G Greg Kroah-Hartman

Kobject: change net/bridge to use kobject_create_and_add

The kobject in the bridge code is only used for registering with sysfs,
not for any lifespan rules.  This patch changes it to be only a pointer
and use the simpler api for this kind of thing.

Cc: Stephen Hemminger <shemminger@linux-foundation.org>
Cc: Kay Sievers <kay.sievers@vrfy.org>
Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
上级 81e7c6a6
...@@ -133,7 +133,7 @@ static void del_nbp(struct net_bridge_port *p) ...@@ -133,7 +133,7 @@ static void del_nbp(struct net_bridge_port *p)
struct net_bridge *br = p->br; struct net_bridge *br = p->br;
struct net_device *dev = p->dev; struct net_device *dev = p->dev;
sysfs_remove_link(&br->ifobj, dev->name); sysfs_remove_link(br->ifobj, dev->name);
dev_set_promiscuity(dev, -1); dev_set_promiscuity(dev, -1);
......
...@@ -124,7 +124,7 @@ struct net_bridge ...@@ -124,7 +124,7 @@ struct net_bridge
struct timer_list tcn_timer; struct timer_list tcn_timer;
struct timer_list topology_change_timer; struct timer_list topology_change_timer;
struct timer_list gc_timer; struct timer_list gc_timer;
struct kobject ifobj; struct kobject *ifobj;
}; };
extern struct notifier_block br_device_notifier; extern struct notifier_block br_device_notifier;
......
...@@ -426,16 +426,10 @@ int br_sysfs_addbr(struct net_device *dev) ...@@ -426,16 +426,10 @@ int br_sysfs_addbr(struct net_device *dev)
goto out2; goto out2;
} }
br->ifobj = kobject_create_and_add(SYSFS_BRIDGE_PORT_SUBDIR, brobj);
kobject_set_name(&br->ifobj, SYSFS_BRIDGE_PORT_SUBDIR); if (!br->ifobj) {
br->ifobj.ktype = NULL;
br->ifobj.kset = NULL;
br->ifobj.parent = brobj;
err = kobject_register(&br->ifobj);
if (err) {
pr_info("%s: can't add kobject (directory) %s/%s\n", pr_info("%s: can't add kobject (directory) %s/%s\n",
__FUNCTION__, dev->name, kobject_name(&br->ifobj)); __FUNCTION__, dev->name, SYSFS_BRIDGE_PORT_SUBDIR);
goto out3; goto out3;
} }
return 0; return 0;
...@@ -453,7 +447,7 @@ void br_sysfs_delbr(struct net_device *dev) ...@@ -453,7 +447,7 @@ void br_sysfs_delbr(struct net_device *dev)
struct kobject *kobj = &dev->dev.kobj; struct kobject *kobj = &dev->dev.kobj;
struct net_bridge *br = netdev_priv(dev); struct net_bridge *br = netdev_priv(dev);
kobject_unregister(&br->ifobj); kobject_unregister(br->ifobj);
sysfs_remove_bin_file(kobj, &bridge_forward); sysfs_remove_bin_file(kobj, &bridge_forward);
sysfs_remove_group(kobj, &bridge_group); sysfs_remove_group(kobj, &bridge_group);
} }
...@@ -229,7 +229,7 @@ int br_sysfs_addif(struct net_bridge_port *p) ...@@ -229,7 +229,7 @@ int br_sysfs_addif(struct net_bridge_port *p)
goto out2; goto out2;
} }
err= sysfs_create_link(&br->ifobj, &p->kobj, p->dev->name); err = sysfs_create_link(br->ifobj, &p->kobj, p->dev->name);
out2: out2:
return err; return err;
} }
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册