@@ -1281,6 +1281,15 @@ static int lm85_detect(struct i2c_client *client, struct i2c_board_info *info)
12811281 return 0 ;
12821282}
12831283
1284+ static void lm85_remove_files (struct i2c_client * client , struct lm85_data * data )
1285+ {
1286+ sysfs_remove_group (& client -> dev .kobj , & lm85_group );
1287+ if (!data -> has_vid5 )
1288+ sysfs_remove_group (& client -> dev .kobj , & lm85_group_in4 );
1289+ if (data -> type == emc6d100 )
1290+ sysfs_remove_group (& client -> dev .kobj , & lm85_group_in567 );
1291+ }
1292+
12841293static int lm85_probe (struct i2c_client * client ,
12851294 const struct i2c_device_id * id )
12861295{
@@ -1349,10 +1358,7 @@ static int lm85_probe(struct i2c_client *client,
13491358
13501359 /* Error out and cleanup code */
13511360 err_remove_files :
1352- sysfs_remove_group (& client -> dev .kobj , & lm85_group );
1353- sysfs_remove_group (& client -> dev .kobj , & lm85_group_in4 );
1354- if (data -> type == emc6d100 )
1355- sysfs_remove_group (& client -> dev .kobj , & lm85_group_in567 );
1361+ lm85_remove_files (client , data );
13561362 err_kfree :
13571363 kfree (data );
13581364 return err ;
@@ -1362,10 +1368,7 @@ static int lm85_remove(struct i2c_client *client)
13621368{
13631369 struct lm85_data * data = i2c_get_clientdata (client );
13641370 hwmon_device_unregister (data -> hwmon_dev );
1365- sysfs_remove_group (& client -> dev .kobj , & lm85_group );
1366- sysfs_remove_group (& client -> dev .kobj , & lm85_group_in4 );
1367- if (data -> type == emc6d100 )
1368- sysfs_remove_group (& client -> dev .kobj , & lm85_group_in567 );
1371+ lm85_remove_files (client , data );
13691372 kfree (data );
13701373 return 0 ;
13711374}
0 commit comments