@@ -1281,6 +1281,15 @@ static int lm85_detect(struct i2c_client *client, struct i2c_board_info *info)
1281
1281
return 0 ;
1282
1282
}
1283
1283
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
+
1284
1293
static int lm85_probe (struct i2c_client * client ,
1285
1294
const struct i2c_device_id * id )
1286
1295
{
@@ -1349,10 +1358,7 @@ static int lm85_probe(struct i2c_client *client,
1349
1358
1350
1359
/* Error out and cleanup code */
1351
1360
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 );
1356
1362
err_kfree :
1357
1363
kfree (data );
1358
1364
return err ;
@@ -1362,10 +1368,7 @@ static int lm85_remove(struct i2c_client *client)
1362
1368
{
1363
1369
struct lm85_data * data = i2c_get_clientdata (client );
1364
1370
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 );
1369
1372
kfree (data );
1370
1373
return 0 ;
1371
1374
}
0 commit comments