Lines Matching refs:mdata
168 struct cxl_mockmem_data *mdata = dev_get_drvdata(dev); in event_find_log() local
172 return &mdata->mes.mock_logs[log_type]; in event_find_log()
338 struct cxl_mockmem_data *mdata = dev_get_drvdata(dev); in cxl_mock_event_trigger() local
339 struct mock_event_store *mes = &mdata->mes; in cxl_mock_event_trigger()
350 cxl_mem_get_event_records(mdata->mds, mes->ev_status); in cxl_mock_event_trigger()
466 struct cxl_mockmem_data *mdata = dev_get_drvdata(cxlds->dev); in mock_set_timestamp() local
475 mdata->timestamp = le64_to_cpu(ts->timestamp); in mock_set_timestamp()
633 static int mock_sanitize(struct cxl_mockmem_data *mdata, in mock_sanitize() argument
636 struct cxl_memdev_state *mds = mdata->mds; in mock_sanitize()
646 if (mdata->security_state & CXL_PMEM_SEC_STATE_USER_PASS_SET) { in mock_sanitize()
650 if (mdata->security_state & CXL_PMEM_SEC_STATE_LOCKED) { in mock_sanitize()
657 msecs_to_jiffies(mdata->sanitize_timeout))) { in mock_sanitize()
667 static int mock_secure_erase(struct cxl_mockmem_data *mdata, in mock_secure_erase() argument
676 if (mdata->security_state & CXL_PMEM_SEC_STATE_USER_PASS_SET) { in mock_secure_erase()
681 if (mdata->security_state & CXL_PMEM_SEC_STATE_LOCKED) { in mock_secure_erase()
689 static int mock_get_security_state(struct cxl_mockmem_data *mdata, in mock_get_security_state() argument
698 memcpy(cmd->payload_out, &mdata->security_state, sizeof(u32)); in mock_get_security_state()
703 static void master_plimit_check(struct cxl_mockmem_data *mdata) in master_plimit_check() argument
705 if (mdata->master_limit == PASS_TRY_LIMIT) in master_plimit_check()
707 mdata->master_limit++; in master_plimit_check()
708 if (mdata->master_limit == PASS_TRY_LIMIT) in master_plimit_check()
709 mdata->security_state |= CXL_PMEM_SEC_STATE_MASTER_PLIMIT; in master_plimit_check()
712 static void user_plimit_check(struct cxl_mockmem_data *mdata) in user_plimit_check() argument
714 if (mdata->user_limit == PASS_TRY_LIMIT) in user_plimit_check()
716 mdata->user_limit++; in user_plimit_check()
717 if (mdata->user_limit == PASS_TRY_LIMIT) in user_plimit_check()
718 mdata->security_state |= CXL_PMEM_SEC_STATE_USER_PLIMIT; in user_plimit_check()
721 static int mock_set_passphrase(struct cxl_mockmem_data *mdata, in mock_set_passphrase() argument
732 if (mdata->security_state & CXL_PMEM_SEC_STATE_FROZEN) { in mock_set_passphrase()
740 if (mdata->security_state & CXL_PMEM_SEC_STATE_MASTER_PLIMIT) { in mock_set_passphrase()
748 if (mdata->security_state & CXL_PMEM_SEC_STATE_USER_PASS_SET) { in mock_set_passphrase()
752 if (memcmp(mdata->master_pass, set_pass->old_pass, NVDIMM_PASSPHRASE_LEN)) { in mock_set_passphrase()
753 master_plimit_check(mdata); in mock_set_passphrase()
757 memcpy(mdata->master_pass, set_pass->new_pass, NVDIMM_PASSPHRASE_LEN); in mock_set_passphrase()
758 mdata->security_state |= CXL_PMEM_SEC_STATE_MASTER_PASS_SET; in mock_set_passphrase()
762 if (mdata->security_state & CXL_PMEM_SEC_STATE_USER_PLIMIT) { in mock_set_passphrase()
766 if (memcmp(mdata->user_pass, set_pass->old_pass, NVDIMM_PASSPHRASE_LEN)) { in mock_set_passphrase()
767 user_plimit_check(mdata); in mock_set_passphrase()
771 memcpy(mdata->user_pass, set_pass->new_pass, NVDIMM_PASSPHRASE_LEN); in mock_set_passphrase()
772 mdata->security_state |= CXL_PMEM_SEC_STATE_USER_PASS_SET; in mock_set_passphrase()
781 static int mock_disable_passphrase(struct cxl_mockmem_data *mdata, in mock_disable_passphrase() argument
792 if (mdata->security_state & CXL_PMEM_SEC_STATE_FROZEN) { in mock_disable_passphrase()
800 if (mdata->security_state & CXL_PMEM_SEC_STATE_MASTER_PLIMIT) { in mock_disable_passphrase()
805 if (!(mdata->security_state & CXL_PMEM_SEC_STATE_MASTER_PASS_SET)) { in mock_disable_passphrase()
810 if (memcmp(dis_pass->pass, mdata->master_pass, NVDIMM_PASSPHRASE_LEN)) { in mock_disable_passphrase()
811 master_plimit_check(mdata); in mock_disable_passphrase()
816 mdata->master_limit = 0; in mock_disable_passphrase()
817 memset(mdata->master_pass, 0, NVDIMM_PASSPHRASE_LEN); in mock_disable_passphrase()
818 mdata->security_state &= ~CXL_PMEM_SEC_STATE_MASTER_PASS_SET; in mock_disable_passphrase()
822 if (mdata->security_state & CXL_PMEM_SEC_STATE_USER_PLIMIT) { in mock_disable_passphrase()
827 if (!(mdata->security_state & CXL_PMEM_SEC_STATE_USER_PASS_SET)) { in mock_disable_passphrase()
832 if (memcmp(dis_pass->pass, mdata->user_pass, NVDIMM_PASSPHRASE_LEN)) { in mock_disable_passphrase()
833 user_plimit_check(mdata); in mock_disable_passphrase()
838 mdata->user_limit = 0; in mock_disable_passphrase()
839 memset(mdata->user_pass, 0, NVDIMM_PASSPHRASE_LEN); in mock_disable_passphrase()
840 mdata->security_state &= ~(CXL_PMEM_SEC_STATE_USER_PASS_SET | in mock_disable_passphrase()
852 static int mock_freeze_security(struct cxl_mockmem_data *mdata, in mock_freeze_security() argument
861 if (mdata->security_state & CXL_PMEM_SEC_STATE_FROZEN) in mock_freeze_security()
864 mdata->security_state |= CXL_PMEM_SEC_STATE_FROZEN; in mock_freeze_security()
868 static int mock_unlock_security(struct cxl_mockmem_data *mdata, in mock_unlock_security() argument
877 if (mdata->security_state & CXL_PMEM_SEC_STATE_FROZEN) { in mock_unlock_security()
882 if (!(mdata->security_state & CXL_PMEM_SEC_STATE_USER_PASS_SET)) { in mock_unlock_security()
887 if (mdata->security_state & CXL_PMEM_SEC_STATE_USER_PLIMIT) { in mock_unlock_security()
892 if (!(mdata->security_state & CXL_PMEM_SEC_STATE_LOCKED)) { in mock_unlock_security()
897 if (memcmp(cmd->payload_in, mdata->user_pass, NVDIMM_PASSPHRASE_LEN)) { in mock_unlock_security()
898 if (++mdata->user_limit == PASS_TRY_LIMIT) in mock_unlock_security()
899 mdata->security_state |= CXL_PMEM_SEC_STATE_USER_PLIMIT; in mock_unlock_security()
904 mdata->user_limit = 0; in mock_unlock_security()
905 mdata->security_state &= ~CXL_PMEM_SEC_STATE_LOCKED; in mock_unlock_security()
909 static int mock_passphrase_secure_erase(struct cxl_mockmem_data *mdata, in mock_passphrase_secure_erase() argument
921 if (mdata->security_state & CXL_PMEM_SEC_STATE_FROZEN) { in mock_passphrase_secure_erase()
926 if (mdata->security_state & CXL_PMEM_SEC_STATE_USER_PLIMIT && in mock_passphrase_secure_erase()
932 if (mdata->security_state & CXL_PMEM_SEC_STATE_MASTER_PLIMIT && in mock_passphrase_secure_erase()
947 if (mdata->security_state & CXL_PMEM_SEC_STATE_MASTER_PASS_SET) { in mock_passphrase_secure_erase()
948 if (memcmp(mdata->master_pass, erase->pass, in mock_passphrase_secure_erase()
950 master_plimit_check(mdata); in mock_passphrase_secure_erase()
954 mdata->master_limit = 0; in mock_passphrase_secure_erase()
955 mdata->user_limit = 0; in mock_passphrase_secure_erase()
956 mdata->security_state &= ~CXL_PMEM_SEC_STATE_USER_PASS_SET; in mock_passphrase_secure_erase()
957 memset(mdata->user_pass, 0, NVDIMM_PASSPHRASE_LEN); in mock_passphrase_secure_erase()
958 mdata->security_state &= ~CXL_PMEM_SEC_STATE_LOCKED; in mock_passphrase_secure_erase()
978 if (mdata->security_state & CXL_PMEM_SEC_STATE_USER_PASS_SET) { in mock_passphrase_secure_erase()
979 if (memcmp(mdata->user_pass, erase->pass, in mock_passphrase_secure_erase()
981 user_plimit_check(mdata); in mock_passphrase_secure_erase()
985 mdata->user_limit = 0; in mock_passphrase_secure_erase()
986 mdata->security_state &= ~CXL_PMEM_SEC_STATE_USER_PASS_SET; in mock_passphrase_secure_erase()
987 memset(mdata->user_pass, 0, NVDIMM_PASSPHRASE_LEN); in mock_passphrase_secure_erase()
1007 static int mock_get_lsa(struct cxl_mockmem_data *mdata, in mock_get_lsa() argument
1011 void *lsa = mdata->lsa; in mock_get_lsa()
1027 static int mock_set_lsa(struct cxl_mockmem_data *mdata, in mock_set_lsa() argument
1031 void *lsa = mdata->lsa; in mock_set_lsa()
1261 static int mock_fw_info(struct cxl_mockmem_data *mdata, in mock_fw_info() argument
1266 .slot_info = (mdata->fw_slot & 0x7) | in mock_fw_info()
1267 ((mdata->fw_staged & 0x7) << 3), in mock_fw_info()
1283 static int mock_transfer_fw(struct cxl_mockmem_data *mdata, in mock_transfer_fw() argument
1287 void *fw = mdata->fw; in mock_transfer_fw()
1303 mdata->fw_size = offset + length; in mock_transfer_fw()
1319 static int mock_activate_fw(struct cxl_mockmem_data *mdata, in mock_activate_fw() argument
1329 mdata->fw_slot = activate->slot; in mock_activate_fw()
1330 mdata->fw_staged = 0; in mock_activate_fw()
1333 mdata->fw_staged = activate->slot; in mock_activate_fw()
1344 struct cxl_mockmem_data *mdata = dev_get_drvdata(dev); in cxl_mock_mbox_send() local
1345 struct cxl_memdev_state *mds = mdata->mds; in cxl_mock_mbox_send()
1366 rc = mock_get_lsa(mdata, cmd); in cxl_mock_mbox_send()
1378 rc = mock_set_lsa(mdata, cmd); in cxl_mock_mbox_send()
1384 rc = mock_sanitize(mdata, cmd); in cxl_mock_mbox_send()
1387 rc = mock_secure_erase(mdata, cmd); in cxl_mock_mbox_send()
1390 rc = mock_get_security_state(mdata, cmd); in cxl_mock_mbox_send()
1393 rc = mock_set_passphrase(mdata, cmd); in cxl_mock_mbox_send()
1396 rc = mock_disable_passphrase(mdata, cmd); in cxl_mock_mbox_send()
1399 rc = mock_freeze_security(mdata, cmd); in cxl_mock_mbox_send()
1402 rc = mock_unlock_security(mdata, cmd); in cxl_mock_mbox_send()
1405 rc = mock_passphrase_secure_erase(mdata, cmd); in cxl_mock_mbox_send()
1417 rc = mock_fw_info(mdata, cmd); in cxl_mock_mbox_send()
1420 rc = mock_transfer_fw(mdata, cmd); in cxl_mock_mbox_send()
1423 rc = mock_activate_fw(mdata, cmd); in cxl_mock_mbox_send()
1478 struct cxl_mockmem_data *mdata; in cxl_mock_mem_probe() local
1482 mdata = devm_kzalloc(dev, sizeof(*mdata), GFP_KERNEL); in cxl_mock_mem_probe()
1483 if (!mdata) in cxl_mock_mem_probe()
1485 dev_set_drvdata(dev, mdata); in cxl_mock_mem_probe()
1487 mdata->lsa = vmalloc(LSA_SIZE); in cxl_mock_mem_probe()
1488 if (!mdata->lsa) in cxl_mock_mem_probe()
1490 mdata->fw = vmalloc(FW_SIZE); in cxl_mock_mem_probe()
1491 if (!mdata->fw) in cxl_mock_mem_probe()
1493 mdata->fw_slot = 2; in cxl_mock_mem_probe()
1495 rc = devm_add_action_or_reset(dev, label_area_release, mdata->lsa); in cxl_mock_mem_probe()
1499 rc = devm_add_action_or_reset(dev, fw_buf_release, mdata->fw); in cxl_mock_mem_probe()
1513 mdata->mds = mds; in cxl_mock_mem_probe()
1516 mds->event.buf = (struct cxl_get_event_payload *) mdata->event_buf; in cxl_mock_mem_probe()
1544 cxl_mock_add_event_logs(&mdata->mes); in cxl_mock_mem_probe()
1566 struct cxl_mockmem_data *mdata = dev_get_drvdata(dev); in security_lock_show() local
1569 !!(mdata->security_state & CXL_PMEM_SEC_STATE_LOCKED)); in security_lock_show()
1575 struct cxl_mockmem_data *mdata = dev_get_drvdata(dev); in security_lock_store() local
1584 if (!(mdata->security_state & CXL_PMEM_SEC_STATE_USER_PASS_SET)) in security_lock_store()
1586 mdata->security_state |= CXL_PMEM_SEC_STATE_LOCKED; in security_lock_store()
1587 mdata->security_state &= ~mask; in security_lock_store()
1599 struct cxl_mockmem_data *mdata = dev_get_drvdata(dev); in fw_buf_checksum_show() local
1607 sha256_update(&sctx, mdata->fw, mdata->fw_size); in fw_buf_checksum_show()
1629 struct cxl_mockmem_data *mdata = dev_get_drvdata(dev); in sanitize_timeout_show() local
1631 return sysfs_emit(buf, "%lu\n", mdata->sanitize_timeout); in sanitize_timeout_show()
1638 struct cxl_mockmem_data *mdata = dev_get_drvdata(dev); in sanitize_timeout_store() local
1646 mdata->sanitize_timeout = val; in sanitize_timeout_store()