Lines Matching refs:tlmi_priv

197 static struct think_lmi tlmi_priv;  variable
295 if (!tlmi_priv.can_get_password_settings) in tlmi_get_pwd_settings()
432 if (!tlmi_priv.can_set_bios_password) in new_password_store()
453 if (tlmi_priv.opcode_support) { in new_password_store()
457 if (setting == tlmi_priv.pwd_hdd) { in new_password_store()
462 } else if (setting == tlmi_priv.pwd_nvme) { in new_password_store()
475 if (tlmi_priv.pwd_admin->valid) { in new_password_store()
477 tlmi_priv.pwd_admin->password); in new_password_store()
681 if (!tlmi_priv.certificate_support || !setting->cert_installed) in certificate_thumbprint_show()
703 if (!tlmi_priv.certificate_support) in cert_to_password_store()
746 if (!tlmi_priv.certificate_support) in certificate_store()
817 if (!tlmi_priv.certificate_support) in signature_store()
846 if (!tlmi_priv.certificate_support) in save_signature_store()
872 if ((setting == tlmi_priv.pwd_hdd) || (setting == tlmi_priv.pwd_nvme)) in auth_attr_is_visible()
883 if ((setting == tlmi_priv.pwd_admin) && tlmi_priv.certificate_support) in auth_attr_is_visible()
890 tlmi_priv.opcode_support) in auth_attr_is_visible()
985 if (!tlmi_priv.can_set_bios_settings) in current_value_store()
999 if (tlmi_priv.certificate_support && tlmi_priv.pwd_admin->cert_installed) { in current_value_store()
1000 if (!tlmi_priv.pwd_admin->signature || !tlmi_priv.pwd_admin->save_signature) { in current_value_store()
1005 new_setting, tlmi_priv.pwd_admin->signature); in current_value_store()
1015 tlmi_priv.pwd_admin->save_signature); in current_value_store()
1018 } else if (tlmi_priv.opcode_support) { in current_value_store()
1036 if (tlmi_priv.pwd_admin->valid && tlmi_priv.pwd_admin->password[0]) { in current_value_store()
1038 tlmi_priv.pwd_admin->password); in current_value_store()
1045 if (tlmi_priv.pwd_admin->valid && tlmi_priv.pwd_admin->password[0]) { in current_value_store()
1047 tlmi_priv.pwd_admin->password, in current_value_store()
1048 encoding_options[tlmi_priv.pwd_admin->encoding], in current_value_store()
1049 tlmi_priv.pwd_admin->kbdlang); in current_value_store()
1076 if (!ret && !tlmi_priv.pending_changes) { in current_value_store()
1077 tlmi_priv.pending_changes = true; in current_value_store()
1079 kobject_uevent(&tlmi_priv.class_dev->kobj, KOBJ_CHANGE); in current_value_store()
1150 return sprintf(buf, "%d\n", tlmi_priv.pending_changes); in pending_reboot_show()
1163 if (!tlmi_priv.can_debug_cmd) in debug_cmd_store()
1173 if (tlmi_priv.pwd_admin->valid && tlmi_priv.pwd_admin->password[0]) { in debug_cmd_store()
1175 tlmi_priv.pwd_admin->password, in debug_cmd_store()
1176 encoding_options[tlmi_priv.pwd_admin->encoding], in debug_cmd_store()
1177 tlmi_priv.pwd_admin->kbdlang); in debug_cmd_store()
1197 if (!ret && !tlmi_priv.pending_changes) { in debug_cmd_store()
1198 tlmi_priv.pending_changes = true; in debug_cmd_store()
1200 kobject_uevent(&tlmi_priv.class_dev->kobj, KOBJ_CHANGE); in debug_cmd_store()
1218 if (tlmi_priv.setting[i]) { in tlmi_release_attr()
1219 sysfs_remove_group(&tlmi_priv.setting[i]->kobj, &tlmi_attr_group); in tlmi_release_attr()
1220 kobject_put(&tlmi_priv.setting[i]->kobj); in tlmi_release_attr()
1223 sysfs_remove_file(&tlmi_priv.attribute_kset->kobj, &pending_reboot.attr); in tlmi_release_attr()
1224 if (tlmi_priv.can_debug_cmd && debug_support) in tlmi_release_attr()
1225 sysfs_remove_file(&tlmi_priv.attribute_kset->kobj, &debug_cmd.attr); in tlmi_release_attr()
1227 kset_unregister(tlmi_priv.attribute_kset); in tlmi_release_attr()
1230 kfree(tlmi_priv.pwd_admin->signature); in tlmi_release_attr()
1231 kfree(tlmi_priv.pwd_admin->save_signature); in tlmi_release_attr()
1234 sysfs_remove_group(&tlmi_priv.pwd_admin->kobj, &auth_attr_group); in tlmi_release_attr()
1235 kobject_put(&tlmi_priv.pwd_admin->kobj); in tlmi_release_attr()
1236 sysfs_remove_group(&tlmi_priv.pwd_power->kobj, &auth_attr_group); in tlmi_release_attr()
1237 kobject_put(&tlmi_priv.pwd_power->kobj); in tlmi_release_attr()
1239 if (tlmi_priv.opcode_support) { in tlmi_release_attr()
1240 sysfs_remove_group(&tlmi_priv.pwd_system->kobj, &auth_attr_group); in tlmi_release_attr()
1241 kobject_put(&tlmi_priv.pwd_system->kobj); in tlmi_release_attr()
1242 sysfs_remove_group(&tlmi_priv.pwd_hdd->kobj, &auth_attr_group); in tlmi_release_attr()
1243 kobject_put(&tlmi_priv.pwd_hdd->kobj); in tlmi_release_attr()
1244 sysfs_remove_group(&tlmi_priv.pwd_nvme->kobj, &auth_attr_group); in tlmi_release_attr()
1245 kobject_put(&tlmi_priv.pwd_nvme->kobj); in tlmi_release_attr()
1248 kset_unregister(tlmi_priv.authentication_kset); in tlmi_release_attr()
1277 tlmi_priv.class_dev = device_create(fw_attr_class, NULL, MKDEV(0, 0), in tlmi_sysfs_init()
1279 if (IS_ERR(tlmi_priv.class_dev)) { in tlmi_sysfs_init()
1280 ret = PTR_ERR(tlmi_priv.class_dev); in tlmi_sysfs_init()
1284 tlmi_priv.attribute_kset = kset_create_and_add("attributes", NULL, in tlmi_sysfs_init()
1285 &tlmi_priv.class_dev->kobj); in tlmi_sysfs_init()
1286 if (!tlmi_priv.attribute_kset) { in tlmi_sysfs_init()
1293 if (!tlmi_priv.setting[i]) in tlmi_sysfs_init()
1297 if (tlmi_validate_setting_name(tlmi_priv.attribute_kset, in tlmi_sysfs_init()
1298 tlmi_priv.setting[i]->display_name) < 0) { in tlmi_sysfs_init()
1299 kfree(tlmi_priv.setting[i]->possible_values); in tlmi_sysfs_init()
1300 kfree(tlmi_priv.setting[i]); in tlmi_sysfs_init()
1301 tlmi_priv.setting[i] = NULL; in tlmi_sysfs_init()
1306 tlmi_priv.setting[i]->kobj.kset = tlmi_priv.attribute_kset; in tlmi_sysfs_init()
1307 ret = kobject_add(&tlmi_priv.setting[i]->kobj, NULL, in tlmi_sysfs_init()
1308 "%s", tlmi_priv.setting[i]->display_name); in tlmi_sysfs_init()
1312 ret = sysfs_create_group(&tlmi_priv.setting[i]->kobj, &tlmi_attr_group); in tlmi_sysfs_init()
1317 ret = sysfs_create_file(&tlmi_priv.attribute_kset->kobj, &pending_reboot.attr); in tlmi_sysfs_init()
1321 if (tlmi_priv.can_debug_cmd && debug_support) { in tlmi_sysfs_init()
1322 ret = sysfs_create_file(&tlmi_priv.attribute_kset->kobj, &debug_cmd.attr); in tlmi_sysfs_init()
1328 tlmi_priv.authentication_kset = kset_create_and_add("authentication", NULL, in tlmi_sysfs_init()
1329 &tlmi_priv.class_dev->kobj); in tlmi_sysfs_init()
1330 if (!tlmi_priv.authentication_kset) { in tlmi_sysfs_init()
1334 tlmi_priv.pwd_admin->kobj.kset = tlmi_priv.authentication_kset; in tlmi_sysfs_init()
1335 ret = kobject_add(&tlmi_priv.pwd_admin->kobj, NULL, "%s", "Admin"); in tlmi_sysfs_init()
1339 ret = sysfs_create_group(&tlmi_priv.pwd_admin->kobj, &auth_attr_group); in tlmi_sysfs_init()
1343 tlmi_priv.pwd_power->kobj.kset = tlmi_priv.authentication_kset; in tlmi_sysfs_init()
1344 ret = kobject_add(&tlmi_priv.pwd_power->kobj, NULL, "%s", "Power-on"); in tlmi_sysfs_init()
1348 ret = sysfs_create_group(&tlmi_priv.pwd_power->kobj, &auth_attr_group); in tlmi_sysfs_init()
1352 if (tlmi_priv.opcode_support) { in tlmi_sysfs_init()
1353 tlmi_priv.pwd_system->kobj.kset = tlmi_priv.authentication_kset; in tlmi_sysfs_init()
1354 ret = kobject_add(&tlmi_priv.pwd_system->kobj, NULL, "%s", "System"); in tlmi_sysfs_init()
1358 ret = sysfs_create_group(&tlmi_priv.pwd_system->kobj, &auth_attr_group); in tlmi_sysfs_init()
1362 tlmi_priv.pwd_hdd->kobj.kset = tlmi_priv.authentication_kset; in tlmi_sysfs_init()
1363 ret = kobject_add(&tlmi_priv.pwd_hdd->kobj, NULL, "%s", "HDD"); in tlmi_sysfs_init()
1367 ret = sysfs_create_group(&tlmi_priv.pwd_hdd->kobj, &auth_attr_group); in tlmi_sysfs_init()
1371 tlmi_priv.pwd_nvme->kobj.kset = tlmi_priv.authentication_kset; in tlmi_sysfs_init()
1372 ret = kobject_add(&tlmi_priv.pwd_nvme->kobj, NULL, "%s", "NVMe"); in tlmi_sysfs_init()
1376 ret = sysfs_create_group(&tlmi_priv.pwd_nvme->kobj, &auth_attr_group); in tlmi_sysfs_init()
1406 new_pwd->minlen = tlmi_priv.pwdcfg.core.min_length; in tlmi_create_auth()
1407 new_pwd->maxlen = tlmi_priv.pwdcfg.core.max_length; in tlmi_create_auth()
1421 tlmi_priv.can_set_bios_settings = true; in tlmi_analyze()
1424 tlmi_priv.can_get_bios_selections = true; in tlmi_analyze()
1427 tlmi_priv.can_set_bios_password = true; in tlmi_analyze()
1430 tlmi_priv.can_get_password_settings = true; in tlmi_analyze()
1433 tlmi_priv.can_debug_cmd = true; in tlmi_analyze()
1436 tlmi_priv.opcode_support = true; in tlmi_analyze()
1441 tlmi_priv.certificate_support = true; in tlmi_analyze()
1452 tlmi_priv.setting[i] = NULL; in tlmi_analyze()
1480 if (tlmi_priv.can_get_bios_selections) { in tlmi_analyze()
1516 tlmi_priv.setting[i] = setting; in tlmi_analyze()
1521 ret = tlmi_get_pwd_settings(&tlmi_priv.pwdcfg); in tlmi_analyze()
1528 tlmi_priv.pwd_admin = tlmi_create_auth("pap", "bios-admin"); in tlmi_analyze()
1529 if (!tlmi_priv.pwd_admin) in tlmi_analyze()
1532 if (tlmi_priv.pwdcfg.core.password_state & TLMI_PAP_PWD) in tlmi_analyze()
1533 tlmi_priv.pwd_admin->valid = true; in tlmi_analyze()
1535 tlmi_priv.pwd_power = tlmi_create_auth("pop", "power-on"); in tlmi_analyze()
1536 if (!tlmi_priv.pwd_power) in tlmi_analyze()
1539 if (tlmi_priv.pwdcfg.core.password_state & TLMI_POP_PWD) in tlmi_analyze()
1540 tlmi_priv.pwd_power->valid = true; in tlmi_analyze()
1542 if (tlmi_priv.opcode_support) { in tlmi_analyze()
1543 tlmi_priv.pwd_system = tlmi_create_auth("smp", "system"); in tlmi_analyze()
1544 if (!tlmi_priv.pwd_system) in tlmi_analyze()
1547 if (tlmi_priv.pwdcfg.core.password_state & TLMI_SMP_PWD) in tlmi_analyze()
1548 tlmi_priv.pwd_system->valid = true; in tlmi_analyze()
1550 tlmi_priv.pwd_hdd = tlmi_create_auth("hdd", "hdd"); in tlmi_analyze()
1551 if (!tlmi_priv.pwd_hdd) in tlmi_analyze()
1554 tlmi_priv.pwd_nvme = tlmi_create_auth("nvm", "nvme"); in tlmi_analyze()
1555 if (!tlmi_priv.pwd_nvme) in tlmi_analyze()
1559 tlmi_priv.pwd_hdd->index = 1; in tlmi_analyze()
1560 tlmi_priv.pwd_nvme->index = 1; in tlmi_analyze()
1562 if (tlmi_priv.pwdcfg.core.password_state & TLMI_HDD_PWD) { in tlmi_analyze()
1564 if (tlmi_priv.pwdcfg.ext.hdd_user_password || in tlmi_analyze()
1565 tlmi_priv.pwdcfg.ext.hdd_master_password) { in tlmi_analyze()
1566 tlmi_priv.pwd_hdd->valid = true; in tlmi_analyze()
1567 if (tlmi_priv.pwdcfg.ext.hdd_master_password) in tlmi_analyze()
1568 tlmi_priv.pwd_hdd->index = in tlmi_analyze()
1569 ffs(tlmi_priv.pwdcfg.ext.hdd_master_password) - 1; in tlmi_analyze()
1571 tlmi_priv.pwd_hdd->index = in tlmi_analyze()
1572 ffs(tlmi_priv.pwdcfg.ext.hdd_user_password) - 1; in tlmi_analyze()
1574 if (tlmi_priv.pwdcfg.ext.nvme_user_password || in tlmi_analyze()
1575 tlmi_priv.pwdcfg.ext.nvme_master_password) { in tlmi_analyze()
1576 tlmi_priv.pwd_nvme->valid = true; in tlmi_analyze()
1577 if (tlmi_priv.pwdcfg.ext.nvme_master_password) in tlmi_analyze()
1578 tlmi_priv.pwd_nvme->index = in tlmi_analyze()
1579 ffs(tlmi_priv.pwdcfg.ext.nvme_master_password) - 1; in tlmi_analyze()
1581 tlmi_priv.pwd_nvme->index = in tlmi_analyze()
1582 ffs(tlmi_priv.pwdcfg.ext.nvme_user_password) - 1; in tlmi_analyze()
1587 if (tlmi_priv.certificate_support && in tlmi_analyze()
1588 (tlmi_priv.pwdcfg.core.password_state & TLMI_CERT)) in tlmi_analyze()
1589 tlmi_priv.pwd_admin->cert_installed = true; in tlmi_analyze()
1595 if (tlmi_priv.setting[i]) { in tlmi_analyze()
1596 kfree(tlmi_priv.setting[i]->possible_values); in tlmi_analyze()
1597 kfree(tlmi_priv.setting[i]); in tlmi_analyze()
1600 kfree(tlmi_priv.pwd_admin); in tlmi_analyze()
1601 kfree(tlmi_priv.pwd_power); in tlmi_analyze()
1602 kfree(tlmi_priv.pwd_system); in tlmi_analyze()
1603 kfree(tlmi_priv.pwd_hdd); in tlmi_analyze()
1604 kfree(tlmi_priv.pwd_nvme); in tlmi_analyze()