@@ -1313,13 +1313,13 @@ static struct kobj_attribute debug_cmd = __ATTR_WO(debug_cmd);
1313
1313
/* ---- Initialisation --------------------------------------------------------- */
1314
1314
static void tlmi_release_attr (void )
1315
1315
{
1316
+ struct kobject * pos , * n ;
1316
1317
int i ;
1317
1318
1318
1319
/* Attribute structures */
1319
1320
for (i = 0 ; i < TLMI_SETTINGS_COUNT ; i ++ ) {
1320
1321
if (tlmi_priv .setting [i ]) {
1321
1322
sysfs_remove_group (& tlmi_priv .setting [i ]-> kobj , & tlmi_attr_group );
1322
- kobject_put (& tlmi_priv .setting [i ]-> kobj );
1323
1323
}
1324
1324
}
1325
1325
sysfs_remove_file (& tlmi_priv .attribute_kset -> kobj , & pending_reboot .attr );
@@ -1328,6 +1328,9 @@ static void tlmi_release_attr(void)
1328
1328
if (tlmi_priv .can_debug_cmd && debug_support )
1329
1329
sysfs_remove_file (& tlmi_priv .attribute_kset -> kobj , & debug_cmd .attr );
1330
1330
1331
+ list_for_each_entry_safe (pos , n , & tlmi_priv .attribute_kset -> list , entry )
1332
+ kobject_put (pos );
1333
+
1331
1334
kset_unregister (tlmi_priv .attribute_kset );
1332
1335
1333
1336
/* Free up any saved signatures */
@@ -1336,19 +1339,17 @@ static void tlmi_release_attr(void)
1336
1339
1337
1340
/* Authentication structures */
1338
1341
sysfs_remove_group (& tlmi_priv .pwd_admin -> kobj , & auth_attr_group );
1339
- kobject_put (& tlmi_priv .pwd_admin -> kobj );
1340
1342
sysfs_remove_group (& tlmi_priv .pwd_power -> kobj , & auth_attr_group );
1341
- kobject_put (& tlmi_priv .pwd_power -> kobj );
1342
1343
1343
1344
if (tlmi_priv .opcode_support ) {
1344
1345
sysfs_remove_group (& tlmi_priv .pwd_system -> kobj , & auth_attr_group );
1345
- kobject_put (& tlmi_priv .pwd_system -> kobj );
1346
1346
sysfs_remove_group (& tlmi_priv .pwd_hdd -> kobj , & auth_attr_group );
1347
- kobject_put (& tlmi_priv .pwd_hdd -> kobj );
1348
1347
sysfs_remove_group (& tlmi_priv .pwd_nvme -> kobj , & auth_attr_group );
1349
- kobject_put (& tlmi_priv .pwd_nvme -> kobj );
1350
1348
}
1351
1349
1350
+ list_for_each_entry_safe (pos , n , & tlmi_priv .authentication_kset -> list , entry )
1351
+ kobject_put (pos );
1352
+
1352
1353
kset_unregister (tlmi_priv .authentication_kset );
1353
1354
}
1354
1355
@@ -1412,8 +1413,8 @@ static int tlmi_sysfs_init(void)
1412
1413
1413
1414
/* Build attribute */
1414
1415
tlmi_priv .setting [i ]-> kobj .kset = tlmi_priv .attribute_kset ;
1415
- ret = kobject_add (& tlmi_priv .setting [i ]-> kobj , NULL ,
1416
- "%s" , tlmi_priv .setting [i ]-> display_name );
1416
+ ret = kobject_init_and_add (& tlmi_priv .setting [i ]-> kobj , & tlmi_attr_setting_ktype ,
1417
+ NULL , "%s" , tlmi_priv .setting [i ]-> display_name );
1417
1418
if (ret )
1418
1419
goto fail_create_attr ;
1419
1420
@@ -1438,7 +1439,8 @@ static int tlmi_sysfs_init(void)
1438
1439
1439
1440
/* Create authentication entries */
1440
1441
tlmi_priv .pwd_admin -> kobj .kset = tlmi_priv .authentication_kset ;
1441
- ret = kobject_add (& tlmi_priv .pwd_admin -> kobj , NULL , "%s" , "Admin" );
1442
+ ret = kobject_init_and_add (& tlmi_priv .pwd_admin -> kobj , & tlmi_pwd_setting_ktype ,
1443
+ NULL , "%s" , "Admin" );
1442
1444
if (ret )
1443
1445
goto fail_create_attr ;
1444
1446
@@ -1447,7 +1449,8 @@ static int tlmi_sysfs_init(void)
1447
1449
goto fail_create_attr ;
1448
1450
1449
1451
tlmi_priv .pwd_power -> kobj .kset = tlmi_priv .authentication_kset ;
1450
- ret = kobject_add (& tlmi_priv .pwd_power -> kobj , NULL , "%s" , "Power-on" );
1452
+ ret = kobject_init_and_add (& tlmi_priv .pwd_power -> kobj , & tlmi_pwd_setting_ktype ,
1453
+ NULL , "%s" , "Power-on" );
1451
1454
if (ret )
1452
1455
goto fail_create_attr ;
1453
1456
@@ -1457,7 +1460,8 @@ static int tlmi_sysfs_init(void)
1457
1460
1458
1461
if (tlmi_priv .opcode_support ) {
1459
1462
tlmi_priv .pwd_system -> kobj .kset = tlmi_priv .authentication_kset ;
1460
- ret = kobject_add (& tlmi_priv .pwd_system -> kobj , NULL , "%s" , "System" );
1463
+ ret = kobject_init_and_add (& tlmi_priv .pwd_system -> kobj , & tlmi_pwd_setting_ktype ,
1464
+ NULL , "%s" , "System" );
1461
1465
if (ret )
1462
1466
goto fail_create_attr ;
1463
1467
@@ -1466,7 +1470,8 @@ static int tlmi_sysfs_init(void)
1466
1470
goto fail_create_attr ;
1467
1471
1468
1472
tlmi_priv .pwd_hdd -> kobj .kset = tlmi_priv .authentication_kset ;
1469
- ret = kobject_add (& tlmi_priv .pwd_hdd -> kobj , NULL , "%s" , "HDD" );
1473
+ ret = kobject_init_and_add (& tlmi_priv .pwd_hdd -> kobj , & tlmi_pwd_setting_ktype ,
1474
+ NULL , "%s" , "HDD" );
1470
1475
if (ret )
1471
1476
goto fail_create_attr ;
1472
1477
@@ -1475,7 +1480,8 @@ static int tlmi_sysfs_init(void)
1475
1480
goto fail_create_attr ;
1476
1481
1477
1482
tlmi_priv .pwd_nvme -> kobj .kset = tlmi_priv .authentication_kset ;
1478
- ret = kobject_add (& tlmi_priv .pwd_nvme -> kobj , NULL , "%s" , "NVMe" );
1483
+ ret = kobject_init_and_add (& tlmi_priv .pwd_nvme -> kobj , & tlmi_pwd_setting_ktype ,
1484
+ NULL , "%s" , "NVMe" );
1479
1485
if (ret )
1480
1486
goto fail_create_attr ;
1481
1487
@@ -1512,8 +1518,6 @@ static struct tlmi_pwd_setting *tlmi_create_auth(const char *pwd_type,
1512
1518
new_pwd -> maxlen = tlmi_priv .pwdcfg .core .max_length ;
1513
1519
new_pwd -> index = 0 ;
1514
1520
1515
- kobject_init (& new_pwd -> kobj , & tlmi_pwd_setting_ktype );
1516
-
1517
1521
return new_pwd ;
1518
1522
}
1519
1523
@@ -1617,7 +1621,6 @@ static int tlmi_analyze(void)
1617
1621
if (setting -> possible_values )
1618
1622
strreplace (setting -> possible_values , ',' , ';' );
1619
1623
1620
- kobject_init (& setting -> kobj , & tlmi_attr_setting_ktype );
1621
1624
tlmi_priv .setting [i ] = setting ;
1622
1625
kfree (item );
1623
1626
}
0 commit comments