datapath: Fix validation of ODPAT_SET_VLAN_PCP actions.
[openvswitch] / datapath / dp_sysfs_dp.c
index 714a4b2efa193df2f252a1ef1b9437ee0cab17c0..503f22e96983425735fdbb6492588e0bd6c64936 100644 (file)
@@ -460,7 +460,7 @@ static struct attribute *bridge_attrs[] = {
 };
 
 static struct attribute_group bridge_group = {
-       .name = SYSFS_BRIDGE_ATTR,
+       .name = SYSFS_BRIDGE_ATTR, /* "bridge" */
        .attrs = bridge_attrs,
 };
 
@@ -479,6 +479,7 @@ int dp_sysfs_add_dp(struct datapath *dp)
        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",
@@ -486,27 +487,15 @@ int dp_sysfs_add_dp(struct datapath *dp)
                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:
@@ -519,11 +508,7 @@ int dp_sysfs_del_dp(struct datapath *dp)
 {
        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;