};
static struct attribute_group bridge_group = {
- .name = SYSFS_BRIDGE_ATTR,
+ .name = SYSFS_BRIDGE_ATTR, /* "bridge" */
.attrs = bridge_attrs,
};
struct kobject *kobj = to_kobj(dp->ports[ODPP_LOCAL]->dev);
int err;
+ /* Create /sys/class/net/<devname>/bridge directory. */
err = sysfs_create_group(kobj, &bridge_group);
if (err) {
pr_info("%s: can't create group %s/%s\n",
goto out1;
}
- /* Create /sys/class/net/<devname>/bridge directory. */
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,25)
- kobject_set_name(&dp->ifobj, SYSFS_BRIDGE_PORT_SUBDIR); /* "bridge" */
- dp->ifobj.ktype = NULL;
- dp->ifobj.kset = NULL;
+ /* Create /sys/class/net/<devname>/brif directory. */
dp->ifobj.parent = kobj;
-
- err = kobject_register(&dp->ifobj);
+ err = kobject_add(&dp->ifobj);
if (err) {
pr_info("%s: can't add kobject (directory) %s/%s\n",
__FUNCTION__, dp_name(dp), dp->ifobj.name);
goto out2;
}
-#else
- br->ifobj = kobject_create_and_add(SYSFS_BRIDGE_PORT_SUBDIR, kobj);
- if (!br->ifobj) {
- pr_info("%s: can't add kobject (directory) %s/%s\n",
- __func__, dp_name(dp), SYSFS_BRIDGE_PORT_SUBDIR);
- goto out2;
- }
-#endif
+ kobject_uevent(&dp->ifobj, KOBJ_ADD);
return 0;
out2:
{
struct kobject *kobj = to_kobj(dp->ports[ODPP_LOCAL]->dev);
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,25)
- kobject_unregister(&dp->ifobj);
-#else
- kobject_put(dp->ifobj);
-#endif
+ kobject_del(&dp->ifobj);
sysfs_remove_group(kobj, &bridge_group);
return 0;