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()
478 struct cxl_mockmem_data *mdata = dev_get_drvdata(cxlds->dev); in mock_set_timestamp() local
487 mdata->timestamp = le64_to_cpu(ts->timestamp); in mock_set_timestamp()
650 static int mock_sanitize(struct cxl_mockmem_data *mdata, in mock_sanitize() argument
653 struct cxl_memdev_state *mds = mdata->mds; in mock_sanitize()
663 if (mdata->security_state & CXL_PMEM_SEC_STATE_USER_PASS_SET) { in mock_sanitize()
667 if (mdata->security_state & CXL_PMEM_SEC_STATE_LOCKED) { in mock_sanitize()
674 msecs_to_jiffies(mdata->sanitize_timeout))) { in mock_sanitize()
684 static int mock_secure_erase(struct cxl_mockmem_data *mdata, in mock_secure_erase() argument
693 if (mdata->security_state & CXL_PMEM_SEC_STATE_USER_PASS_SET) { in mock_secure_erase()
698 if (mdata->security_state & CXL_PMEM_SEC_STATE_LOCKED) { in mock_secure_erase()
706 static int mock_get_security_state(struct cxl_mockmem_data *mdata, in mock_get_security_state() argument
715 memcpy(cmd->payload_out, &mdata->security_state, sizeof(u32)); in mock_get_security_state()
720 static void master_plimit_check(struct cxl_mockmem_data *mdata) in master_plimit_check() argument
722 if (mdata->master_limit == PASS_TRY_LIMIT) in master_plimit_check()
724 mdata->master_limit++; in master_plimit_check()
725 if (mdata->master_limit == PASS_TRY_LIMIT) in master_plimit_check()
726 mdata->security_state |= CXL_PMEM_SEC_STATE_MASTER_PLIMIT; in master_plimit_check()
729 static void user_plimit_check(struct cxl_mockmem_data *mdata) in user_plimit_check() argument
731 if (mdata->user_limit == PASS_TRY_LIMIT) in user_plimit_check()
733 mdata->user_limit++; in user_plimit_check()
734 if (mdata->user_limit == PASS_TRY_LIMIT) in user_plimit_check()
735 mdata->security_state |= CXL_PMEM_SEC_STATE_USER_PLIMIT; in user_plimit_check()
738 static int mock_set_passphrase(struct cxl_mockmem_data *mdata, in mock_set_passphrase() argument
749 if (mdata->security_state & CXL_PMEM_SEC_STATE_FROZEN) { in mock_set_passphrase()
757 if (mdata->security_state & CXL_PMEM_SEC_STATE_MASTER_PLIMIT) { in mock_set_passphrase()
765 if (mdata->security_state & CXL_PMEM_SEC_STATE_USER_PASS_SET) { in mock_set_passphrase()
769 if (memcmp(mdata->master_pass, set_pass->old_pass, NVDIMM_PASSPHRASE_LEN)) { in mock_set_passphrase()
770 master_plimit_check(mdata); in mock_set_passphrase()
774 memcpy(mdata->master_pass, set_pass->new_pass, NVDIMM_PASSPHRASE_LEN); in mock_set_passphrase()
775 mdata->security_state |= CXL_PMEM_SEC_STATE_MASTER_PASS_SET; in mock_set_passphrase()
779 if (mdata->security_state & CXL_PMEM_SEC_STATE_USER_PLIMIT) { in mock_set_passphrase()
783 if (memcmp(mdata->user_pass, set_pass->old_pass, NVDIMM_PASSPHRASE_LEN)) { in mock_set_passphrase()
784 user_plimit_check(mdata); in mock_set_passphrase()
788 memcpy(mdata->user_pass, set_pass->new_pass, NVDIMM_PASSPHRASE_LEN); in mock_set_passphrase()
789 mdata->security_state |= CXL_PMEM_SEC_STATE_USER_PASS_SET; in mock_set_passphrase()
798 static int mock_disable_passphrase(struct cxl_mockmem_data *mdata, in mock_disable_passphrase() argument
809 if (mdata->security_state & CXL_PMEM_SEC_STATE_FROZEN) { in mock_disable_passphrase()
817 if (mdata->security_state & CXL_PMEM_SEC_STATE_MASTER_PLIMIT) { in mock_disable_passphrase()
822 if (!(mdata->security_state & CXL_PMEM_SEC_STATE_MASTER_PASS_SET)) { in mock_disable_passphrase()
827 if (memcmp(dis_pass->pass, mdata->master_pass, NVDIMM_PASSPHRASE_LEN)) { in mock_disable_passphrase()
828 master_plimit_check(mdata); in mock_disable_passphrase()
833 mdata->master_limit = 0; in mock_disable_passphrase()
834 memset(mdata->master_pass, 0, NVDIMM_PASSPHRASE_LEN); in mock_disable_passphrase()
835 mdata->security_state &= ~CXL_PMEM_SEC_STATE_MASTER_PASS_SET; in mock_disable_passphrase()
839 if (mdata->security_state & CXL_PMEM_SEC_STATE_USER_PLIMIT) { in mock_disable_passphrase()
844 if (!(mdata->security_state & CXL_PMEM_SEC_STATE_USER_PASS_SET)) { in mock_disable_passphrase()
849 if (memcmp(dis_pass->pass, mdata->user_pass, NVDIMM_PASSPHRASE_LEN)) { in mock_disable_passphrase()
850 user_plimit_check(mdata); in mock_disable_passphrase()
855 mdata->user_limit = 0; in mock_disable_passphrase()
856 memset(mdata->user_pass, 0, NVDIMM_PASSPHRASE_LEN); in mock_disable_passphrase()
857 mdata->security_state &= ~(CXL_PMEM_SEC_STATE_USER_PASS_SET | in mock_disable_passphrase()
869 static int mock_freeze_security(struct cxl_mockmem_data *mdata, in mock_freeze_security() argument
878 if (mdata->security_state & CXL_PMEM_SEC_STATE_FROZEN) in mock_freeze_security()
881 mdata->security_state |= CXL_PMEM_SEC_STATE_FROZEN; in mock_freeze_security()
885 static int mock_unlock_security(struct cxl_mockmem_data *mdata, in mock_unlock_security() argument
894 if (mdata->security_state & CXL_PMEM_SEC_STATE_FROZEN) { in mock_unlock_security()
899 if (!(mdata->security_state & CXL_PMEM_SEC_STATE_USER_PASS_SET)) { in mock_unlock_security()
904 if (mdata->security_state & CXL_PMEM_SEC_STATE_USER_PLIMIT) { in mock_unlock_security()
909 if (!(mdata->security_state & CXL_PMEM_SEC_STATE_LOCKED)) { in mock_unlock_security()
914 if (memcmp(cmd->payload_in, mdata->user_pass, NVDIMM_PASSPHRASE_LEN)) { in mock_unlock_security()
915 if (++mdata->user_limit == PASS_TRY_LIMIT) in mock_unlock_security()
916 mdata->security_state |= CXL_PMEM_SEC_STATE_USER_PLIMIT; in mock_unlock_security()
921 mdata->user_limit = 0; in mock_unlock_security()
922 mdata->security_state &= ~CXL_PMEM_SEC_STATE_LOCKED; in mock_unlock_security()
926 static int mock_passphrase_secure_erase(struct cxl_mockmem_data *mdata, in mock_passphrase_secure_erase() argument
938 if (mdata->security_state & CXL_PMEM_SEC_STATE_FROZEN) { in mock_passphrase_secure_erase()
943 if (mdata->security_state & CXL_PMEM_SEC_STATE_USER_PLIMIT && in mock_passphrase_secure_erase()
949 if (mdata->security_state & CXL_PMEM_SEC_STATE_MASTER_PLIMIT && in mock_passphrase_secure_erase()
964 if (mdata->security_state & CXL_PMEM_SEC_STATE_MASTER_PASS_SET) { in mock_passphrase_secure_erase()
965 if (memcmp(mdata->master_pass, erase->pass, in mock_passphrase_secure_erase()
967 master_plimit_check(mdata); in mock_passphrase_secure_erase()
971 mdata->master_limit = 0; in mock_passphrase_secure_erase()
972 mdata->user_limit = 0; in mock_passphrase_secure_erase()
973 mdata->security_state &= ~CXL_PMEM_SEC_STATE_USER_PASS_SET; in mock_passphrase_secure_erase()
974 memset(mdata->user_pass, 0, NVDIMM_PASSPHRASE_LEN); in mock_passphrase_secure_erase()
975 mdata->security_state &= ~CXL_PMEM_SEC_STATE_LOCKED; in mock_passphrase_secure_erase()
995 if (mdata->security_state & CXL_PMEM_SEC_STATE_USER_PASS_SET) { in mock_passphrase_secure_erase()
996 if (memcmp(mdata->user_pass, erase->pass, in mock_passphrase_secure_erase()
998 user_plimit_check(mdata); in mock_passphrase_secure_erase()
1002 mdata->user_limit = 0; in mock_passphrase_secure_erase()
1003 mdata->security_state &= ~CXL_PMEM_SEC_STATE_USER_PASS_SET; in mock_passphrase_secure_erase()
1004 memset(mdata->user_pass, 0, NVDIMM_PASSPHRASE_LEN); in mock_passphrase_secure_erase()
1024 static int mock_get_lsa(struct cxl_mockmem_data *mdata, in mock_get_lsa() argument
1028 void *lsa = mdata->lsa; in mock_get_lsa()
1044 static int mock_set_lsa(struct cxl_mockmem_data *mdata, in mock_set_lsa() argument
1048 void *lsa = mdata->lsa; in mock_set_lsa()
1278 static int mock_fw_info(struct cxl_mockmem_data *mdata, in mock_fw_info() argument
1283 .slot_info = (mdata->fw_slot & 0x7) | in mock_fw_info()
1284 ((mdata->fw_staged & 0x7) << 3), in mock_fw_info()
1300 static int mock_transfer_fw(struct cxl_mockmem_data *mdata, in mock_transfer_fw() argument
1304 void *fw = mdata->fw; in mock_transfer_fw()
1320 mdata->fw_size = offset + length; in mock_transfer_fw()
1336 static int mock_activate_fw(struct cxl_mockmem_data *mdata, in mock_activate_fw() argument
1346 mdata->fw_slot = activate->slot; in mock_activate_fw()
1347 mdata->fw_staged = 0; in mock_activate_fw()
1350 mdata->fw_staged = activate->slot; in mock_activate_fw()
1361 struct cxl_mockmem_data *mdata = dev_get_drvdata(dev); in cxl_mock_mbox_send() local
1362 struct cxl_memdev_state *mds = mdata->mds; in cxl_mock_mbox_send()
1383 rc = mock_get_lsa(mdata, cmd); in cxl_mock_mbox_send()
1395 rc = mock_set_lsa(mdata, cmd); in cxl_mock_mbox_send()
1401 rc = mock_sanitize(mdata, cmd); in cxl_mock_mbox_send()
1404 rc = mock_secure_erase(mdata, cmd); in cxl_mock_mbox_send()
1407 rc = mock_get_security_state(mdata, cmd); in cxl_mock_mbox_send()
1410 rc = mock_set_passphrase(mdata, cmd); in cxl_mock_mbox_send()
1413 rc = mock_disable_passphrase(mdata, cmd); in cxl_mock_mbox_send()
1416 rc = mock_freeze_security(mdata, cmd); in cxl_mock_mbox_send()
1419 rc = mock_unlock_security(mdata, cmd); in cxl_mock_mbox_send()
1422 rc = mock_passphrase_secure_erase(mdata, cmd); in cxl_mock_mbox_send()
1434 rc = mock_fw_info(mdata, cmd); in cxl_mock_mbox_send()
1437 rc = mock_transfer_fw(mdata, cmd); in cxl_mock_mbox_send()
1440 rc = mock_activate_fw(mdata, cmd); in cxl_mock_mbox_send()
1495 struct cxl_mockmem_data *mdata; in cxl_mock_mem_probe() local
1499 mdata = devm_kzalloc(dev, sizeof(*mdata), GFP_KERNEL); in cxl_mock_mem_probe()
1500 if (!mdata) in cxl_mock_mem_probe()
1502 dev_set_drvdata(dev, mdata); in cxl_mock_mem_probe()
1504 mdata->lsa = vmalloc(LSA_SIZE); in cxl_mock_mem_probe()
1505 if (!mdata->lsa) in cxl_mock_mem_probe()
1507 mdata->fw = vmalloc(FW_SIZE); in cxl_mock_mem_probe()
1508 if (!mdata->fw) in cxl_mock_mem_probe()
1510 mdata->fw_slot = 2; in cxl_mock_mem_probe()
1512 rc = devm_add_action_or_reset(dev, label_area_release, mdata->lsa); in cxl_mock_mem_probe()
1516 rc = devm_add_action_or_reset(dev, fw_buf_release, mdata->fw); in cxl_mock_mem_probe()
1530 mdata->mds = mds; in cxl_mock_mem_probe()
1533 mds->event.buf = (struct cxl_get_event_payload *) mdata->event_buf; in cxl_mock_mem_probe()
1561 cxl_mock_add_event_logs(&mdata->mes); in cxl_mock_mem_probe()
1583 struct cxl_mockmem_data *mdata = dev_get_drvdata(dev); in security_lock_show() local
1586 !!(mdata->security_state & CXL_PMEM_SEC_STATE_LOCKED)); in security_lock_show()
1592 struct cxl_mockmem_data *mdata = dev_get_drvdata(dev); in security_lock_store() local
1601 if (!(mdata->security_state & CXL_PMEM_SEC_STATE_USER_PASS_SET)) in security_lock_store()
1603 mdata->security_state |= CXL_PMEM_SEC_STATE_LOCKED; in security_lock_store()
1604 mdata->security_state &= ~mask; in security_lock_store()
1616 struct cxl_mockmem_data *mdata = dev_get_drvdata(dev); in fw_buf_checksum_show() local
1624 sha256_update(&sctx, mdata->fw, mdata->fw_size); in fw_buf_checksum_show()
1646 struct cxl_mockmem_data *mdata = dev_get_drvdata(dev); in sanitize_timeout_show() local
1648 return sysfs_emit(buf, "%lu\n", mdata->sanitize_timeout); in sanitize_timeout_show()
1655 struct cxl_mockmem_data *mdata = dev_get_drvdata(dev); in sanitize_timeout_store() local
1663 mdata->sanitize_timeout = val; in sanitize_timeout_store()