hwmon: (adt7475) Move sysfs files removal to a separate function
authorJean Delvare <khali@linux-fr.org>
Wed, 9 Dec 2009 19:36:06 +0000 (20:36 +0100)
committerJean Delvare <khali@linux-fr.org>
Wed, 9 Dec 2009 19:36:06 +0000 (20:36 +0100)
Move sysfs files removal to a separate function. The code is common to
the device probing error path and the standard device removal path. As
it will grow with future driver development, this avoids code
duplication.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Cc: Hans de Goede <hdegoede@redhat.com>
Cc: Jordan Crouse <jordan@cosmicpenguin.net>
Cc: "Darrick J. Wong" <djwong@us.ibm.com>
drivers/hwmon/adt7475.c

index e495665569e57589ad5f00d979c29cf74dc26f17..716dae9ff0f771a3e54c90c394b3a9c975b528b3 100644 (file)
@@ -1109,6 +1109,14 @@ static int adt7475_detect(struct i2c_client *client, int kind,
        return 0;
 }
 
+static void adt7475_remove_files(struct i2c_client *client,
+                                struct adt7475_data *data)
+{
+       sysfs_remove_group(&client->dev.kobj, &adt7475_attr_group);
+       if (data->has_voltage & 0x39)
+               sysfs_remove_group(&client->dev.kobj, &adt7490_attr_group);
+}
+
 static int adt7475_probe(struct i2c_client *client,
                         const struct i2c_device_id *id)
 {
@@ -1156,9 +1164,7 @@ static int adt7475_probe(struct i2c_client *client,
        return 0;
 
 eremove:
-       sysfs_remove_group(&client->dev.kobj, &adt7475_attr_group);
-       if (data->has_voltage & 0x39)
-               sysfs_remove_group(&client->dev.kobj, &adt7490_attr_group);
+       adt7475_remove_files(client, data);
 efree:
        kfree(data);
        return ret;
@@ -1169,9 +1175,7 @@ static int adt7475_remove(struct i2c_client *client)
        struct adt7475_data *data = i2c_get_clientdata(client);
 
        hwmon_device_unregister(data->hwmon_dev);
-       sysfs_remove_group(&client->dev.kobj, &adt7475_attr_group);
-       if (data->has_voltage & 0x39)
-               sysfs_remove_group(&client->dev.kobj, &adt7490_attr_group);
+       adt7475_remove_files(client, data);
        kfree(data);
 
        return 0;