From 657c2f2cbccbac88689ac5174fc13dd3f9aece34 Mon Sep 17 00:00:00 2001 From: Roland Dreier Date: Fri, 25 Jan 2008 14:15:21 -0800 Subject: 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 --- drivers/infiniband/hw/ipath/ipath_sysfs.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'drivers/infiniband/hw/ipath/ipath_sysfs.c') diff --git a/drivers/infiniband/hw/ipath/ipath_sysfs.c b/drivers/infiniband/hw/ipath/ipath_sysfs.c index aa27ca9f03b1..e2a65349c824 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: -- cgit v1.2.3