summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/hwmon/adt7475.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/drivers/hwmon/adt7475.c b/drivers/hwmon/adt7475.c
index e495665569e..716dae9ff0f 100644
--- a/drivers/hwmon/adt7475.c
+++ b/drivers/hwmon/adt7475.c
@@ -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;