Lines Matching defs:tlmi_priv

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