Lines Matching refs:mdata

160 	struct cxl_mockmem_data *mdata = dev_get_drvdata(dev);  in event_find_log()  local
164 return &mdata->mes.mock_logs[log_type]; in event_find_log()
318 struct cxl_mockmem_data *mdata = dev_get_drvdata(dev); in cxl_mock_event_trigger() local
319 struct mock_event_store *mes = &mdata->mes; in cxl_mock_event_trigger()
420 struct cxl_mockmem_data *mdata = dev_get_drvdata(cxlds->dev); in mock_set_timestamp() local
429 mdata->timestamp = le64_to_cpu(ts->timestamp); in mock_set_timestamp()
571 static int mock_sanitize(struct cxl_mockmem_data *mdata, in mock_sanitize() argument
580 if (mdata->security_state & CXL_PMEM_SEC_STATE_USER_PASS_SET) { in mock_sanitize()
584 if (mdata->security_state & CXL_PMEM_SEC_STATE_LOCKED) { in mock_sanitize()
592 static int mock_secure_erase(struct cxl_mockmem_data *mdata, in mock_secure_erase() argument
601 if (mdata->security_state & CXL_PMEM_SEC_STATE_USER_PASS_SET) { in mock_secure_erase()
606 if (mdata->security_state & CXL_PMEM_SEC_STATE_LOCKED) { in mock_secure_erase()
614 static int mock_get_security_state(struct cxl_mockmem_data *mdata, in mock_get_security_state() argument
623 memcpy(cmd->payload_out, &mdata->security_state, sizeof(u32)); in mock_get_security_state()
628 static void master_plimit_check(struct cxl_mockmem_data *mdata) in master_plimit_check() argument
630 if (mdata->master_limit == PASS_TRY_LIMIT) in master_plimit_check()
632 mdata->master_limit++; in master_plimit_check()
633 if (mdata->master_limit == PASS_TRY_LIMIT) in master_plimit_check()
634 mdata->security_state |= CXL_PMEM_SEC_STATE_MASTER_PLIMIT; in master_plimit_check()
637 static void user_plimit_check(struct cxl_mockmem_data *mdata) in user_plimit_check() argument
639 if (mdata->user_limit == PASS_TRY_LIMIT) in user_plimit_check()
641 mdata->user_limit++; in user_plimit_check()
642 if (mdata->user_limit == PASS_TRY_LIMIT) in user_plimit_check()
643 mdata->security_state |= CXL_PMEM_SEC_STATE_USER_PLIMIT; in user_plimit_check()
646 static int mock_set_passphrase(struct cxl_mockmem_data *mdata, in mock_set_passphrase() argument
657 if (mdata->security_state & CXL_PMEM_SEC_STATE_FROZEN) { in mock_set_passphrase()
665 if (mdata->security_state & CXL_PMEM_SEC_STATE_MASTER_PLIMIT) { in mock_set_passphrase()
673 if (mdata->security_state & CXL_PMEM_SEC_STATE_USER_PASS_SET) { in mock_set_passphrase()
677 if (memcmp(mdata->master_pass, set_pass->old_pass, NVDIMM_PASSPHRASE_LEN)) { in mock_set_passphrase()
678 master_plimit_check(mdata); in mock_set_passphrase()
682 memcpy(mdata->master_pass, set_pass->new_pass, NVDIMM_PASSPHRASE_LEN); in mock_set_passphrase()
683 mdata->security_state |= CXL_PMEM_SEC_STATE_MASTER_PASS_SET; in mock_set_passphrase()
687 if (mdata->security_state & CXL_PMEM_SEC_STATE_USER_PLIMIT) { in mock_set_passphrase()
691 if (memcmp(mdata->user_pass, set_pass->old_pass, NVDIMM_PASSPHRASE_LEN)) { in mock_set_passphrase()
692 user_plimit_check(mdata); in mock_set_passphrase()
696 memcpy(mdata->user_pass, set_pass->new_pass, NVDIMM_PASSPHRASE_LEN); in mock_set_passphrase()
697 mdata->security_state |= CXL_PMEM_SEC_STATE_USER_PASS_SET; in mock_set_passphrase()
706 static int mock_disable_passphrase(struct cxl_mockmem_data *mdata, in mock_disable_passphrase() argument
717 if (mdata->security_state & CXL_PMEM_SEC_STATE_FROZEN) { in mock_disable_passphrase()
725 if (mdata->security_state & CXL_PMEM_SEC_STATE_MASTER_PLIMIT) { in mock_disable_passphrase()
730 if (!(mdata->security_state & CXL_PMEM_SEC_STATE_MASTER_PASS_SET)) { in mock_disable_passphrase()
735 if (memcmp(dis_pass->pass, mdata->master_pass, NVDIMM_PASSPHRASE_LEN)) { in mock_disable_passphrase()
736 master_plimit_check(mdata); in mock_disable_passphrase()
741 mdata->master_limit = 0; in mock_disable_passphrase()
742 memset(mdata->master_pass, 0, NVDIMM_PASSPHRASE_LEN); in mock_disable_passphrase()
743 mdata->security_state &= ~CXL_PMEM_SEC_STATE_MASTER_PASS_SET; in mock_disable_passphrase()
747 if (mdata->security_state & CXL_PMEM_SEC_STATE_USER_PLIMIT) { in mock_disable_passphrase()
752 if (!(mdata->security_state & CXL_PMEM_SEC_STATE_USER_PASS_SET)) { in mock_disable_passphrase()
757 if (memcmp(dis_pass->pass, mdata->user_pass, NVDIMM_PASSPHRASE_LEN)) { in mock_disable_passphrase()
758 user_plimit_check(mdata); in mock_disable_passphrase()
763 mdata->user_limit = 0; in mock_disable_passphrase()
764 memset(mdata->user_pass, 0, NVDIMM_PASSPHRASE_LEN); in mock_disable_passphrase()
765 mdata->security_state &= ~(CXL_PMEM_SEC_STATE_USER_PASS_SET | in mock_disable_passphrase()
777 static int mock_freeze_security(struct cxl_mockmem_data *mdata, in mock_freeze_security() argument
786 if (mdata->security_state & CXL_PMEM_SEC_STATE_FROZEN) in mock_freeze_security()
789 mdata->security_state |= CXL_PMEM_SEC_STATE_FROZEN; in mock_freeze_security()
793 static int mock_unlock_security(struct cxl_mockmem_data *mdata, in mock_unlock_security() argument
802 if (mdata->security_state & CXL_PMEM_SEC_STATE_FROZEN) { in mock_unlock_security()
807 if (!(mdata->security_state & CXL_PMEM_SEC_STATE_USER_PASS_SET)) { in mock_unlock_security()
812 if (mdata->security_state & CXL_PMEM_SEC_STATE_USER_PLIMIT) { in mock_unlock_security()
817 if (!(mdata->security_state & CXL_PMEM_SEC_STATE_LOCKED)) { in mock_unlock_security()
822 if (memcmp(cmd->payload_in, mdata->user_pass, NVDIMM_PASSPHRASE_LEN)) { in mock_unlock_security()
823 if (++mdata->user_limit == PASS_TRY_LIMIT) in mock_unlock_security()
824 mdata->security_state |= CXL_PMEM_SEC_STATE_USER_PLIMIT; in mock_unlock_security()
829 mdata->user_limit = 0; in mock_unlock_security()
830 mdata->security_state &= ~CXL_PMEM_SEC_STATE_LOCKED; in mock_unlock_security()
834 static int mock_passphrase_secure_erase(struct cxl_mockmem_data *mdata, in mock_passphrase_secure_erase() argument
846 if (mdata->security_state & CXL_PMEM_SEC_STATE_FROZEN) { in mock_passphrase_secure_erase()
851 if (mdata->security_state & CXL_PMEM_SEC_STATE_USER_PLIMIT && in mock_passphrase_secure_erase()
857 if (mdata->security_state & CXL_PMEM_SEC_STATE_MASTER_PLIMIT && in mock_passphrase_secure_erase()
872 if (mdata->security_state & CXL_PMEM_SEC_STATE_MASTER_PASS_SET) { in mock_passphrase_secure_erase()
873 if (memcmp(mdata->master_pass, erase->pass, in mock_passphrase_secure_erase()
875 master_plimit_check(mdata); in mock_passphrase_secure_erase()
879 mdata->master_limit = 0; in mock_passphrase_secure_erase()
880 mdata->user_limit = 0; in mock_passphrase_secure_erase()
881 mdata->security_state &= ~CXL_PMEM_SEC_STATE_USER_PASS_SET; in mock_passphrase_secure_erase()
882 memset(mdata->user_pass, 0, NVDIMM_PASSPHRASE_LEN); in mock_passphrase_secure_erase()
883 mdata->security_state &= ~CXL_PMEM_SEC_STATE_LOCKED; in mock_passphrase_secure_erase()
903 if (mdata->security_state & CXL_PMEM_SEC_STATE_USER_PASS_SET) { in mock_passphrase_secure_erase()
904 if (memcmp(mdata->user_pass, erase->pass, in mock_passphrase_secure_erase()
906 user_plimit_check(mdata); in mock_passphrase_secure_erase()
910 mdata->user_limit = 0; in mock_passphrase_secure_erase()
911 mdata->security_state &= ~CXL_PMEM_SEC_STATE_USER_PASS_SET; in mock_passphrase_secure_erase()
912 memset(mdata->user_pass, 0, NVDIMM_PASSPHRASE_LEN); in mock_passphrase_secure_erase()
932 static int mock_get_lsa(struct cxl_mockmem_data *mdata, in mock_get_lsa() argument
936 void *lsa = mdata->lsa; in mock_get_lsa()
952 static int mock_set_lsa(struct cxl_mockmem_data *mdata, in mock_set_lsa() argument
956 void *lsa = mdata->lsa; in mock_set_lsa()
1187 static int mock_fw_info(struct cxl_mockmem_data *mdata, in mock_fw_info() argument
1192 .slot_info = (mdata->fw_slot & 0x7) | in mock_fw_info()
1193 ((mdata->fw_staged & 0x7) << 3), in mock_fw_info()
1209 static int mock_transfer_fw(struct cxl_mockmem_data *mdata, in mock_transfer_fw() argument
1213 void *fw = mdata->fw; in mock_transfer_fw()
1229 mdata->fw_size = offset + length; in mock_transfer_fw()
1244 static int mock_activate_fw(struct cxl_mockmem_data *mdata, in mock_activate_fw() argument
1254 mdata->fw_slot = activate->slot; in mock_activate_fw()
1255 mdata->fw_staged = 0; in mock_activate_fw()
1258 mdata->fw_staged = activate->slot; in mock_activate_fw()
1270 struct cxl_mockmem_data *mdata = dev_get_drvdata(dev); in cxl_mock_mbox_send() local
1290 rc = mock_get_lsa(mdata, cmd); in cxl_mock_mbox_send()
1302 rc = mock_set_lsa(mdata, cmd); in cxl_mock_mbox_send()
1308 rc = mock_sanitize(mdata, cmd); in cxl_mock_mbox_send()
1311 rc = mock_secure_erase(mdata, cmd); in cxl_mock_mbox_send()
1314 rc = mock_get_security_state(mdata, cmd); in cxl_mock_mbox_send()
1317 rc = mock_set_passphrase(mdata, cmd); in cxl_mock_mbox_send()
1320 rc = mock_disable_passphrase(mdata, cmd); in cxl_mock_mbox_send()
1323 rc = mock_freeze_security(mdata, cmd); in cxl_mock_mbox_send()
1326 rc = mock_unlock_security(mdata, cmd); in cxl_mock_mbox_send()
1329 rc = mock_passphrase_secure_erase(mdata, cmd); in cxl_mock_mbox_send()
1341 rc = mock_fw_info(mdata, cmd); in cxl_mock_mbox_send()
1344 rc = mock_transfer_fw(mdata, cmd); in cxl_mock_mbox_send()
1347 rc = mock_activate_fw(mdata, cmd); in cxl_mock_mbox_send()
1391 struct cxl_mockmem_data *mdata; in cxl_mock_mem_probe() local
1394 mdata = devm_kzalloc(dev, sizeof(*mdata), GFP_KERNEL); in cxl_mock_mem_probe()
1395 if (!mdata) in cxl_mock_mem_probe()
1397 dev_set_drvdata(dev, mdata); in cxl_mock_mem_probe()
1399 mdata->lsa = vmalloc(LSA_SIZE); in cxl_mock_mem_probe()
1400 if (!mdata->lsa) in cxl_mock_mem_probe()
1402 mdata->fw = vmalloc(FW_SIZE); in cxl_mock_mem_probe()
1403 if (!mdata->fw) in cxl_mock_mem_probe()
1405 mdata->fw_slot = 2; in cxl_mock_mem_probe()
1407 rc = devm_add_action_or_reset(dev, label_area_release, mdata->lsa); in cxl_mock_mem_probe()
1411 rc = devm_add_action_or_reset(dev, fw_buf_release, mdata->fw); in cxl_mock_mem_probe()
1421 mds->event.buf = (struct cxl_get_event_payload *) mdata->event_buf; in cxl_mock_mem_probe()
1451 mdata->mes.mds = mds; in cxl_mock_mem_probe()
1452 cxl_mock_add_event_logs(&mdata->mes); in cxl_mock_mem_probe()
1470 struct cxl_mockmem_data *mdata = dev_get_drvdata(dev); in security_lock_show() local
1473 !!(mdata->security_state & CXL_PMEM_SEC_STATE_LOCKED)); in security_lock_show()
1479 struct cxl_mockmem_data *mdata = dev_get_drvdata(dev); in security_lock_store() local
1488 if (!(mdata->security_state & CXL_PMEM_SEC_STATE_USER_PASS_SET)) in security_lock_store()
1490 mdata->security_state |= CXL_PMEM_SEC_STATE_LOCKED; in security_lock_store()
1491 mdata->security_state &= ~mask; in security_lock_store()
1503 struct cxl_mockmem_data *mdata = dev_get_drvdata(dev); in fw_buf_checksum_show() local
1511 sha256_update(&sctx, mdata->fw, mdata->fw_size); in fw_buf_checksum_show()