aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoland Dreier <rolandd@cisco.com>2008-01-25 14:15:21 -0800
committerRoland Dreier <rolandd@cisco.com>2008-01-25 14:15:21 -0800
commit657c2f2cbccbac88689ac5174fc13dd3f9aece34 (patch)
treecdb292c2da582d49a3908244914dd192535e76cd
parentb47711bfbcd4eb77ca61ef0162487b20e023ae55 (diff)
IB/ipath: Fix crash on unload introduced by sysfs changes
Commit 23b9c1ab ("Infiniband: make ipath driver use default driver groups.") introduced a bug in the ipath driver where ipath_device_create_group() fell through into the error path, even on success, which meant that the sysfs groups it created would always get removed right away. This made ipath_device_remove_group() hit the BUG_ON() in sysfs_remove_group() when it tried to remove those groups a second time. Correct the return path so that the groups stick around until they are supposed to be cleaned up. Signed-off-by: Roland Dreier <rolandd@cisco.com>
-rw-r--r--drivers/infiniband/hw/ipath/ipath_sysfs.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/infiniband/hw/ipath/ipath_sysfs.c b/drivers/infiniband/hw/ipath/ipath_sysfs.c
index aa27ca9f03b..e2a65349c82 100644
--- a/drivers/infiniband/hw/ipath/ipath_sysfs.c
+++ b/drivers/infiniband/hw/ipath/ipath_sysfs.c
@@ -770,7 +770,8 @@ int ipath_device_create_group(struct device *dev, struct ipath_devdata *dd)
if (ret)
goto bail_attrs;
- sysfs_remove_group(&dev->kobj, &dev_counter_attr_group);
+ return 0;
+
bail_attrs:
sysfs_remove_group(&dev->kobj, &dev_attr_group);
bail: