summaryrefslogtreecommitdiff
path: root/datapath/dp_sysfs_if.c
diff options
context:
space:
mode:
authorBen Pfaff <blp@nicira.com>2009-08-19 13:03:46 -0700
committerBen Pfaff <blp@nicira.com>2009-08-19 13:03:46 -0700
commit8fef8c7121222233075a03d57db7e0b48d5f6be5 (patch)
tree5cb9822a490c41694be2c8af80ec6a5300ad7a28 /datapath/dp_sysfs_if.c
parentd2cd45db48e2713b74c3a31f746f923a72294e46 (diff)
parent6dd3fad481b5d801695c2b0529c7d37cac2c9b19 (diff)
downloadopenvswitch-8fef8c7121222233075a03d57db7e0b48d5f6be5.tar.gz
Merge citrix into master.
This was a somewhat difficult merge since there was a fair amount of superficially divergent development on the two branches, especially in the datapath. This has been build-tested against XenServer 5.5.0 and XenServer 5.7.0 build 15122. It has been booted and connected to XenCenter on 5.5.0. The merge revealed a couple of outstanding bugs, which will be fixed on citrix and then merged back into master.
Diffstat (limited to 'datapath/dp_sysfs_if.c')
-rw-r--r--datapath/dp_sysfs_if.c22
1 files changed, 9 insertions, 13 deletions
diff --git a/datapath/dp_sysfs_if.c b/datapath/dp_sysfs_if.c
index ab928f6c6..95c26dc42 100644
--- a/datapath/dp_sysfs_if.c
+++ b/datapath/dp_sysfs_if.c
@@ -21,7 +21,7 @@
#include "dp_sysfs.h"
#include "datapath.h"
-#ifdef SUPPORT_SYSFS
+#ifdef CONFIG_SYSFS
struct brport_attribute {
struct attribute attr;
@@ -278,9 +278,10 @@ int dp_sysfs_add_if(struct net_bridge_port *p)
int err;
/* Create /sys/class/net/<devname>/brport directory. */
- err = kobject_add(&p->kobj);
+ err = kobject_add(&p->kobj, &p->dev->NETDEV_DEV_MEMBER.kobj,
+ SYSFS_BRIDGE_PORT_ATTR);
if (err)
- goto err_put;
+ goto err;
/* Create symlink from /sys/class/net/<devname>/brport/bridge to
* /sys/class/net/<bridgename>. */
@@ -306,15 +307,12 @@ int dp_sysfs_add_if(struct net_bridge_port *p)
kobject_uevent(&p->kobj, KOBJ_ADD);
- return err;
+ return 0;
err_del:
kobject_del(&p->kobj);
-err_put:
- kobject_put(&p->kobj);
-
- /* Ensure that dp_sysfs_del_if becomes a no-op. */
- p->kobj.dentry = NULL;
+err:
+ p->linkname[0] = 0;
return err;
}
@@ -322,12 +320,10 @@ int dp_sysfs_del_if(struct net_bridge_port *p)
{
if (p->linkname[0]) {
sysfs_remove_link(&p->dp->ifobj, p->linkname);
- p->linkname[0] = '\0';
- }
- if (p->kobj.dentry) {
kobject_uevent(&p->kobj, KOBJ_REMOVE);
kobject_del(&p->kobj);
+ p->linkname[0] = '\0';
}
return 0;
}
-#endif /* SUPPORT_SYSFS */
+#endif /* CONFIG_SYSFS */