@@ -1208,19 +1208,22 @@ static struct kobj_attribute debug_cmd = __ATTR_WO(debug_cmd);
1208
1208
/* ---- Initialisation --------------------------------------------------------- */
1209
1209
static void tlmi_release_attr (void )
1210
1210
{
1211
+ struct kobject * pos , * n ;
1211
1212
int i ;
1212
1213
1213
1214
/* Attribute structures */
1214
1215
for (i = 0 ; i < TLMI_SETTINGS_COUNT ; i ++ ) {
1215
1216
if (tlmi_priv .setting [i ]) {
1216
1217
sysfs_remove_group (& tlmi_priv .setting [i ]-> kobj , & tlmi_attr_group );
1217
- kobject_put (& tlmi_priv .setting [i ]-> kobj );
1218
1218
}
1219
1219
}
1220
1220
sysfs_remove_file (& tlmi_priv .attribute_kset -> kobj , & pending_reboot .attr );
1221
1221
if (tlmi_priv .can_debug_cmd && debug_support )
1222
1222
sysfs_remove_file (& tlmi_priv .attribute_kset -> kobj , & debug_cmd .attr );
1223
1223
1224
+ list_for_each_entry_safe (pos , n , & tlmi_priv .attribute_kset -> list , entry )
1225
+ kobject_put (pos );
1226
+
1224
1227
kset_unregister (tlmi_priv .attribute_kset );
1225
1228
1226
1229
/* Free up any saved signatures */
@@ -1229,19 +1232,17 @@ static void tlmi_release_attr(void)
1229
1232
1230
1233
/* Authentication structures */
1231
1234
sysfs_remove_group (& tlmi_priv .pwd_admin -> kobj , & auth_attr_group );
1232
- kobject_put (& tlmi_priv .pwd_admin -> kobj );
1233
1235
sysfs_remove_group (& tlmi_priv .pwd_power -> kobj , & auth_attr_group );
1234
- kobject_put (& tlmi_priv .pwd_power -> kobj );
1235
1236
1236
1237
if (tlmi_priv .opcode_support ) {
1237
1238
sysfs_remove_group (& tlmi_priv .pwd_system -> kobj , & auth_attr_group );
1238
- kobject_put (& tlmi_priv .pwd_system -> kobj );
1239
1239
sysfs_remove_group (& tlmi_priv .pwd_hdd -> kobj , & auth_attr_group );
1240
- kobject_put (& tlmi_priv .pwd_hdd -> kobj );
1241
1240
sysfs_remove_group (& tlmi_priv .pwd_nvme -> kobj , & auth_attr_group );
1242
- kobject_put (& tlmi_priv .pwd_nvme -> kobj );
1243
1241
}
1244
1242
1243
+ list_for_each_entry_safe (pos , n , & tlmi_priv .authentication_kset -> list , entry )
1244
+ kobject_put (pos );
1245
+
1245
1246
kset_unregister (tlmi_priv .authentication_kset );
1246
1247
}
1247
1248
@@ -1309,8 +1310,8 @@ static int tlmi_sysfs_init(void)
1309
1310
1310
1311
/* Build attribute */
1311
1312
tlmi_priv .setting [i ]-> kobj .kset = tlmi_priv .attribute_kset ;
1312
- ret = kobject_add (& tlmi_priv .setting [i ]-> kobj , NULL ,
1313
- "%s" , tlmi_priv .setting [i ]-> display_name );
1313
+ ret = kobject_init_and_add (& tlmi_priv .setting [i ]-> kobj , & tlmi_attr_setting_ktype ,
1314
+ NULL , "%s" , tlmi_priv .setting [i ]-> display_name );
1314
1315
if (ret )
1315
1316
goto fail_create_attr ;
1316
1317
@@ -1331,7 +1332,8 @@ static int tlmi_sysfs_init(void)
1331
1332
1332
1333
/* Create authentication entries */
1333
1334
tlmi_priv .pwd_admin -> kobj .kset = tlmi_priv .authentication_kset ;
1334
- ret = kobject_add (& tlmi_priv .pwd_admin -> kobj , NULL , "%s" , "Admin" );
1335
+ ret = kobject_init_and_add (& tlmi_priv .pwd_admin -> kobj , & tlmi_pwd_setting_ktype ,
1336
+ NULL , "%s" , "Admin" );
1335
1337
if (ret )
1336
1338
goto fail_create_attr ;
1337
1339
@@ -1340,7 +1342,8 @@ static int tlmi_sysfs_init(void)
1340
1342
goto fail_create_attr ;
1341
1343
1342
1344
tlmi_priv .pwd_power -> kobj .kset = tlmi_priv .authentication_kset ;
1343
- ret = kobject_add (& tlmi_priv .pwd_power -> kobj , NULL , "%s" , "Power-on" );
1345
+ ret = kobject_init_and_add (& tlmi_priv .pwd_power -> kobj , & tlmi_pwd_setting_ktype ,
1346
+ NULL , "%s" , "Power-on" );
1344
1347
if (ret )
1345
1348
goto fail_create_attr ;
1346
1349
@@ -1350,7 +1353,8 @@ static int tlmi_sysfs_init(void)
1350
1353
1351
1354
if (tlmi_priv .opcode_support ) {
1352
1355
tlmi_priv .pwd_system -> kobj .kset = tlmi_priv .authentication_kset ;
1353
- ret = kobject_add (& tlmi_priv .pwd_system -> kobj , NULL , "%s" , "System" );
1356
+ ret = kobject_init_and_add (& tlmi_priv .pwd_system -> kobj , & tlmi_pwd_setting_ktype ,
1357
+ NULL , "%s" , "System" );
1354
1358
if (ret )
1355
1359
goto fail_create_attr ;
1356
1360
@@ -1359,7 +1363,8 @@ static int tlmi_sysfs_init(void)
1359
1363
goto fail_create_attr ;
1360
1364
1361
1365
tlmi_priv .pwd_hdd -> kobj .kset = tlmi_priv .authentication_kset ;
1362
- ret = kobject_add (& tlmi_priv .pwd_hdd -> kobj , NULL , "%s" , "HDD" );
1366
+ ret = kobject_init_and_add (& tlmi_priv .pwd_hdd -> kobj , & tlmi_pwd_setting_ktype ,
1367
+ NULL , "%s" , "HDD" );
1363
1368
if (ret )
1364
1369
goto fail_create_attr ;
1365
1370
@@ -1368,7 +1373,8 @@ static int tlmi_sysfs_init(void)
1368
1373
goto fail_create_attr ;
1369
1374
1370
1375
tlmi_priv .pwd_nvme -> kobj .kset = tlmi_priv .authentication_kset ;
1371
- ret = kobject_add (& tlmi_priv .pwd_nvme -> kobj , NULL , "%s" , "NVMe" );
1376
+ ret = kobject_init_and_add (& tlmi_priv .pwd_nvme -> kobj , & tlmi_pwd_setting_ktype ,
1377
+ NULL , "%s" , "NVMe" );
1372
1378
if (ret )
1373
1379
goto fail_create_attr ;
1374
1380
@@ -1406,8 +1412,6 @@ static struct tlmi_pwd_setting *tlmi_create_auth(const char *pwd_type,
1406
1412
new_pwd -> maxlen = tlmi_priv .pwdcfg .core .max_length ;
1407
1413
new_pwd -> index = 0 ;
1408
1414
1409
- kobject_init (& new_pwd -> kobj , & tlmi_pwd_setting_ktype );
1410
-
1411
1415
return new_pwd ;
1412
1416
}
1413
1417
@@ -1512,7 +1516,6 @@ static int tlmi_analyze(void)
1512
1516
if (setting -> possible_values )
1513
1517
strreplace (setting -> possible_values , ',' , ';' );
1514
1518
1515
- kobject_init (& setting -> kobj , & tlmi_attr_setting_ktype );
1516
1519
tlmi_priv .setting [i ] = setting ;
1517
1520
kfree (item );
1518
1521
}
0 commit comments