@@ -1380,13 +1380,13 @@ static struct kobj_attribute debug_cmd = __ATTR_WO(debug_cmd);
1380
1380
/* ---- Initialisation --------------------------------------------------------- */
1381
1381
static void tlmi_release_attr (void )
1382
1382
{
1383
+ struct kobject * pos , * n ;
1383
1384
int i ;
1384
1385
1385
1386
/* Attribute structures */
1386
1387
for (i = 0 ; i < TLMI_SETTINGS_COUNT ; i ++ ) {
1387
1388
if (tlmi_priv .setting [i ]) {
1388
1389
sysfs_remove_group (& tlmi_priv .setting [i ]-> kobj , & tlmi_attr_group );
1389
- kobject_put (& tlmi_priv .setting [i ]-> kobj );
1390
1390
}
1391
1391
}
1392
1392
sysfs_remove_file (& tlmi_priv .attribute_kset -> kobj , & pending_reboot .attr );
@@ -1395,6 +1395,9 @@ static void tlmi_release_attr(void)
1395
1395
if (tlmi_priv .can_debug_cmd && debug_support )
1396
1396
sysfs_remove_file (& tlmi_priv .attribute_kset -> kobj , & debug_cmd .attr );
1397
1397
1398
+ list_for_each_entry_safe (pos , n , & tlmi_priv .attribute_kset -> list , entry )
1399
+ kobject_put (pos );
1400
+
1398
1401
kset_unregister (tlmi_priv .attribute_kset );
1399
1402
1400
1403
/* Free up any saved signatures */
@@ -1403,19 +1406,17 @@ static void tlmi_release_attr(void)
1403
1406
1404
1407
/* Authentication structures */
1405
1408
sysfs_remove_group (& tlmi_priv .pwd_admin -> kobj , & auth_attr_group );
1406
- kobject_put (& tlmi_priv .pwd_admin -> kobj );
1407
1409
sysfs_remove_group (& tlmi_priv .pwd_power -> kobj , & auth_attr_group );
1408
- kobject_put (& tlmi_priv .pwd_power -> kobj );
1409
1410
1410
1411
if (tlmi_priv .opcode_support ) {
1411
1412
sysfs_remove_group (& tlmi_priv .pwd_system -> kobj , & auth_attr_group );
1412
- kobject_put (& tlmi_priv .pwd_system -> kobj );
1413
1413
sysfs_remove_group (& tlmi_priv .pwd_hdd -> kobj , & auth_attr_group );
1414
- kobject_put (& tlmi_priv .pwd_hdd -> kobj );
1415
1414
sysfs_remove_group (& tlmi_priv .pwd_nvme -> kobj , & auth_attr_group );
1416
- kobject_put (& tlmi_priv .pwd_nvme -> kobj );
1417
1415
}
1418
1416
1417
+ list_for_each_entry_safe (pos , n , & tlmi_priv .authentication_kset -> list , entry )
1418
+ kobject_put (pos );
1419
+
1419
1420
kset_unregister (tlmi_priv .authentication_kset );
1420
1421
}
1421
1422
@@ -1479,8 +1480,8 @@ static int tlmi_sysfs_init(void)
1479
1480
1480
1481
/* Build attribute */
1481
1482
tlmi_priv .setting [i ]-> kobj .kset = tlmi_priv .attribute_kset ;
1482
- ret = kobject_add (& tlmi_priv .setting [i ]-> kobj , NULL ,
1483
- "%s" , tlmi_priv .setting [i ]-> display_name );
1483
+ ret = kobject_init_and_add (& tlmi_priv .setting [i ]-> kobj , & tlmi_attr_setting_ktype ,
1484
+ NULL , "%s" , tlmi_priv .setting [i ]-> display_name );
1484
1485
if (ret )
1485
1486
goto fail_create_attr ;
1486
1487
@@ -1505,7 +1506,8 @@ static int tlmi_sysfs_init(void)
1505
1506
1506
1507
/* Create authentication entries */
1507
1508
tlmi_priv .pwd_admin -> kobj .kset = tlmi_priv .authentication_kset ;
1508
- ret = kobject_add (& tlmi_priv .pwd_admin -> kobj , NULL , "%s" , "Admin" );
1509
+ ret = kobject_init_and_add (& tlmi_priv .pwd_admin -> kobj , & tlmi_pwd_setting_ktype ,
1510
+ NULL , "%s" , "Admin" );
1509
1511
if (ret )
1510
1512
goto fail_create_attr ;
1511
1513
@@ -1514,7 +1516,8 @@ static int tlmi_sysfs_init(void)
1514
1516
goto fail_create_attr ;
1515
1517
1516
1518
tlmi_priv .pwd_power -> kobj .kset = tlmi_priv .authentication_kset ;
1517
- ret = kobject_add (& tlmi_priv .pwd_power -> kobj , NULL , "%s" , "Power-on" );
1519
+ ret = kobject_init_and_add (& tlmi_priv .pwd_power -> kobj , & tlmi_pwd_setting_ktype ,
1520
+ NULL , "%s" , "Power-on" );
1518
1521
if (ret )
1519
1522
goto fail_create_attr ;
1520
1523
@@ -1524,7 +1527,8 @@ static int tlmi_sysfs_init(void)
1524
1527
1525
1528
if (tlmi_priv .opcode_support ) {
1526
1529
tlmi_priv .pwd_system -> kobj .kset = tlmi_priv .authentication_kset ;
1527
- ret = kobject_add (& tlmi_priv .pwd_system -> kobj , NULL , "%s" , "System" );
1530
+ ret = kobject_init_and_add (& tlmi_priv .pwd_system -> kobj , & tlmi_pwd_setting_ktype ,
1531
+ NULL , "%s" , "System" );
1528
1532
if (ret )
1529
1533
goto fail_create_attr ;
1530
1534
@@ -1533,7 +1537,8 @@ static int tlmi_sysfs_init(void)
1533
1537
goto fail_create_attr ;
1534
1538
1535
1539
tlmi_priv .pwd_hdd -> kobj .kset = tlmi_priv .authentication_kset ;
1536
- ret = kobject_add (& tlmi_priv .pwd_hdd -> kobj , NULL , "%s" , "HDD" );
1540
+ ret = kobject_init_and_add (& tlmi_priv .pwd_hdd -> kobj , & tlmi_pwd_setting_ktype ,
1541
+ NULL , "%s" , "HDD" );
1537
1542
if (ret )
1538
1543
goto fail_create_attr ;
1539
1544
@@ -1542,7 +1547,8 @@ static int tlmi_sysfs_init(void)
1542
1547
goto fail_create_attr ;
1543
1548
1544
1549
tlmi_priv .pwd_nvme -> kobj .kset = tlmi_priv .authentication_kset ;
1545
- ret = kobject_add (& tlmi_priv .pwd_nvme -> kobj , NULL , "%s" , "NVMe" );
1550
+ ret = kobject_init_and_add (& tlmi_priv .pwd_nvme -> kobj , & tlmi_pwd_setting_ktype ,
1551
+ NULL , "%s" , "NVMe" );
1546
1552
if (ret )
1547
1553
goto fail_create_attr ;
1548
1554
@@ -1579,8 +1585,6 @@ static struct tlmi_pwd_setting *tlmi_create_auth(const char *pwd_type,
1579
1585
new_pwd -> maxlen = tlmi_priv .pwdcfg .core .max_length ;
1580
1586
new_pwd -> index = 0 ;
1581
1587
1582
- kobject_init (& new_pwd -> kobj , & tlmi_pwd_setting_ktype );
1583
-
1584
1588
return new_pwd ;
1585
1589
}
1586
1590
@@ -1685,7 +1689,6 @@ static int tlmi_analyze(struct wmi_device *wdev)
1685
1689
if (setting -> possible_values )
1686
1690
strreplace (setting -> possible_values , ',' , ';' );
1687
1691
1688
- kobject_init (& setting -> kobj , & tlmi_attr_setting_ktype );
1689
1692
tlmi_priv .setting [i ] = setting ;
1690
1693
kfree (item );
1691
1694
}
0 commit comments