Lines Matching refs:mdata

159 	struct cxl_mockmem_data *mdata = dev_get_drvdata(dev);  in event_find_log()  local
163 return &mdata->mes.mock_logs[log_type]; in event_find_log()
317 struct cxl_mockmem_data *mdata = dev_get_drvdata(dev); in cxl_mock_event_trigger() local
318 struct mock_event_store *mes = &mdata->mes; in cxl_mock_event_trigger()
419 struct cxl_mockmem_data *mdata = dev_get_drvdata(cxlds->dev); in mock_set_timestamp() local
428 mdata->timestamp = le64_to_cpu(ts->timestamp); in mock_set_timestamp()
570 static int mock_sanitize(struct cxl_mockmem_data *mdata, in mock_sanitize() argument
579 if (mdata->security_state & CXL_PMEM_SEC_STATE_USER_PASS_SET) { in mock_sanitize()
583 if (mdata->security_state & CXL_PMEM_SEC_STATE_LOCKED) { in mock_sanitize()
591 static int mock_secure_erase(struct cxl_mockmem_data *mdata, in mock_secure_erase() argument
600 if (mdata->security_state & CXL_PMEM_SEC_STATE_USER_PASS_SET) { in mock_secure_erase()
605 if (mdata->security_state & CXL_PMEM_SEC_STATE_LOCKED) { in mock_secure_erase()
613 static int mock_get_security_state(struct cxl_mockmem_data *mdata, in mock_get_security_state() argument
622 memcpy(cmd->payload_out, &mdata->security_state, sizeof(u32)); in mock_get_security_state()
627 static void master_plimit_check(struct cxl_mockmem_data *mdata) in master_plimit_check() argument
629 if (mdata->master_limit == PASS_TRY_LIMIT) in master_plimit_check()
631 mdata->master_limit++; in master_plimit_check()
632 if (mdata->master_limit == PASS_TRY_LIMIT) in master_plimit_check()
633 mdata->security_state |= CXL_PMEM_SEC_STATE_MASTER_PLIMIT; in master_plimit_check()
636 static void user_plimit_check(struct cxl_mockmem_data *mdata) in user_plimit_check() argument
638 if (mdata->user_limit == PASS_TRY_LIMIT) in user_plimit_check()
640 mdata->user_limit++; in user_plimit_check()
641 if (mdata->user_limit == PASS_TRY_LIMIT) in user_plimit_check()
642 mdata->security_state |= CXL_PMEM_SEC_STATE_USER_PLIMIT; in user_plimit_check()
645 static int mock_set_passphrase(struct cxl_mockmem_data *mdata, in mock_set_passphrase() argument
656 if (mdata->security_state & CXL_PMEM_SEC_STATE_FROZEN) { in mock_set_passphrase()
664 if (mdata->security_state & CXL_PMEM_SEC_STATE_MASTER_PLIMIT) { in mock_set_passphrase()
672 if (mdata->security_state & CXL_PMEM_SEC_STATE_USER_PASS_SET) { in mock_set_passphrase()
676 if (memcmp(mdata->master_pass, set_pass->old_pass, NVDIMM_PASSPHRASE_LEN)) { in mock_set_passphrase()
677 master_plimit_check(mdata); in mock_set_passphrase()
681 memcpy(mdata->master_pass, set_pass->new_pass, NVDIMM_PASSPHRASE_LEN); in mock_set_passphrase()
682 mdata->security_state |= CXL_PMEM_SEC_STATE_MASTER_PASS_SET; in mock_set_passphrase()
686 if (mdata->security_state & CXL_PMEM_SEC_STATE_USER_PLIMIT) { in mock_set_passphrase()
690 if (memcmp(mdata->user_pass, set_pass->old_pass, NVDIMM_PASSPHRASE_LEN)) { in mock_set_passphrase()
691 user_plimit_check(mdata); in mock_set_passphrase()
695 memcpy(mdata->user_pass, set_pass->new_pass, NVDIMM_PASSPHRASE_LEN); in mock_set_passphrase()
696 mdata->security_state |= CXL_PMEM_SEC_STATE_USER_PASS_SET; in mock_set_passphrase()
705 static int mock_disable_passphrase(struct cxl_mockmem_data *mdata, in mock_disable_passphrase() argument
716 if (mdata->security_state & CXL_PMEM_SEC_STATE_FROZEN) { in mock_disable_passphrase()
724 if (mdata->security_state & CXL_PMEM_SEC_STATE_MASTER_PLIMIT) { in mock_disable_passphrase()
729 if (!(mdata->security_state & CXL_PMEM_SEC_STATE_MASTER_PASS_SET)) { in mock_disable_passphrase()
734 if (memcmp(dis_pass->pass, mdata->master_pass, NVDIMM_PASSPHRASE_LEN)) { in mock_disable_passphrase()
735 master_plimit_check(mdata); in mock_disable_passphrase()
740 mdata->master_limit = 0; in mock_disable_passphrase()
741 memset(mdata->master_pass, 0, NVDIMM_PASSPHRASE_LEN); in mock_disable_passphrase()
742 mdata->security_state &= ~CXL_PMEM_SEC_STATE_MASTER_PASS_SET; in mock_disable_passphrase()
746 if (mdata->security_state & CXL_PMEM_SEC_STATE_USER_PLIMIT) { in mock_disable_passphrase()
751 if (!(mdata->security_state & CXL_PMEM_SEC_STATE_USER_PASS_SET)) { in mock_disable_passphrase()
756 if (memcmp(dis_pass->pass, mdata->user_pass, NVDIMM_PASSPHRASE_LEN)) { in mock_disable_passphrase()
757 user_plimit_check(mdata); in mock_disable_passphrase()
762 mdata->user_limit = 0; in mock_disable_passphrase()
763 memset(mdata->user_pass, 0, NVDIMM_PASSPHRASE_LEN); in mock_disable_passphrase()
764 mdata->security_state &= ~(CXL_PMEM_SEC_STATE_USER_PASS_SET | in mock_disable_passphrase()
776 static int mock_freeze_security(struct cxl_mockmem_data *mdata, in mock_freeze_security() argument
785 if (mdata->security_state & CXL_PMEM_SEC_STATE_FROZEN) in mock_freeze_security()
788 mdata->security_state |= CXL_PMEM_SEC_STATE_FROZEN; in mock_freeze_security()
792 static int mock_unlock_security(struct cxl_mockmem_data *mdata, in mock_unlock_security() argument
801 if (mdata->security_state & CXL_PMEM_SEC_STATE_FROZEN) { in mock_unlock_security()
806 if (!(mdata->security_state & CXL_PMEM_SEC_STATE_USER_PASS_SET)) { in mock_unlock_security()
811 if (mdata->security_state & CXL_PMEM_SEC_STATE_USER_PLIMIT) { in mock_unlock_security()
816 if (!(mdata->security_state & CXL_PMEM_SEC_STATE_LOCKED)) { in mock_unlock_security()
821 if (memcmp(cmd->payload_in, mdata->user_pass, NVDIMM_PASSPHRASE_LEN)) { in mock_unlock_security()
822 if (++mdata->user_limit == PASS_TRY_LIMIT) in mock_unlock_security()
823 mdata->security_state |= CXL_PMEM_SEC_STATE_USER_PLIMIT; in mock_unlock_security()
828 mdata->user_limit = 0; in mock_unlock_security()
829 mdata->security_state &= ~CXL_PMEM_SEC_STATE_LOCKED; in mock_unlock_security()
833 static int mock_passphrase_secure_erase(struct cxl_mockmem_data *mdata, in mock_passphrase_secure_erase() argument
845 if (mdata->security_state & CXL_PMEM_SEC_STATE_FROZEN) { in mock_passphrase_secure_erase()
850 if (mdata->security_state & CXL_PMEM_SEC_STATE_USER_PLIMIT && in mock_passphrase_secure_erase()
856 if (mdata->security_state & CXL_PMEM_SEC_STATE_MASTER_PLIMIT && in mock_passphrase_secure_erase()
871 if (mdata->security_state & CXL_PMEM_SEC_STATE_MASTER_PASS_SET) { in mock_passphrase_secure_erase()
872 if (memcmp(mdata->master_pass, erase->pass, in mock_passphrase_secure_erase()
874 master_plimit_check(mdata); in mock_passphrase_secure_erase()
878 mdata->master_limit = 0; in mock_passphrase_secure_erase()
879 mdata->user_limit = 0; in mock_passphrase_secure_erase()
880 mdata->security_state &= ~CXL_PMEM_SEC_STATE_USER_PASS_SET; in mock_passphrase_secure_erase()
881 memset(mdata->user_pass, 0, NVDIMM_PASSPHRASE_LEN); in mock_passphrase_secure_erase()
882 mdata->security_state &= ~CXL_PMEM_SEC_STATE_LOCKED; in mock_passphrase_secure_erase()
902 if (mdata->security_state & CXL_PMEM_SEC_STATE_USER_PASS_SET) { in mock_passphrase_secure_erase()
903 if (memcmp(mdata->user_pass, erase->pass, in mock_passphrase_secure_erase()
905 user_plimit_check(mdata); in mock_passphrase_secure_erase()
909 mdata->user_limit = 0; in mock_passphrase_secure_erase()
910 mdata->security_state &= ~CXL_PMEM_SEC_STATE_USER_PASS_SET; in mock_passphrase_secure_erase()
911 memset(mdata->user_pass, 0, NVDIMM_PASSPHRASE_LEN); in mock_passphrase_secure_erase()
931 static int mock_get_lsa(struct cxl_mockmem_data *mdata, in mock_get_lsa() argument
935 void *lsa = mdata->lsa; in mock_get_lsa()
951 static int mock_set_lsa(struct cxl_mockmem_data *mdata, in mock_set_lsa() argument
955 void *lsa = mdata->lsa; in mock_set_lsa()
1186 static int mock_fw_info(struct cxl_mockmem_data *mdata, in mock_fw_info() argument
1191 .slot_info = (mdata->fw_slot & 0x7) | in mock_fw_info()
1192 ((mdata->fw_staged & 0x7) << 3), in mock_fw_info()
1208 static int mock_transfer_fw(struct cxl_mockmem_data *mdata, in mock_transfer_fw() argument
1212 void *fw = mdata->fw; in mock_transfer_fw()
1228 mdata->fw_size = offset + length; in mock_transfer_fw()
1243 static int mock_activate_fw(struct cxl_mockmem_data *mdata, in mock_activate_fw() argument
1253 mdata->fw_slot = activate->slot; in mock_activate_fw()
1254 mdata->fw_staged = 0; in mock_activate_fw()
1257 mdata->fw_staged = activate->slot; in mock_activate_fw()
1269 struct cxl_mockmem_data *mdata = dev_get_drvdata(dev); in cxl_mock_mbox_send() local
1289 rc = mock_get_lsa(mdata, cmd); in cxl_mock_mbox_send()
1301 rc = mock_set_lsa(mdata, cmd); in cxl_mock_mbox_send()
1307 rc = mock_sanitize(mdata, cmd); in cxl_mock_mbox_send()
1310 rc = mock_secure_erase(mdata, cmd); in cxl_mock_mbox_send()
1313 rc = mock_get_security_state(mdata, cmd); in cxl_mock_mbox_send()
1316 rc = mock_set_passphrase(mdata, cmd); in cxl_mock_mbox_send()
1319 rc = mock_disable_passphrase(mdata, cmd); in cxl_mock_mbox_send()
1322 rc = mock_freeze_security(mdata, cmd); in cxl_mock_mbox_send()
1325 rc = mock_unlock_security(mdata, cmd); in cxl_mock_mbox_send()
1328 rc = mock_passphrase_secure_erase(mdata, cmd); in cxl_mock_mbox_send()
1340 rc = mock_fw_info(mdata, cmd); in cxl_mock_mbox_send()
1343 rc = mock_transfer_fw(mdata, cmd); in cxl_mock_mbox_send()
1346 rc = mock_activate_fw(mdata, cmd); in cxl_mock_mbox_send()
1390 struct cxl_mockmem_data *mdata; in cxl_mock_mem_probe() local
1393 mdata = devm_kzalloc(dev, sizeof(*mdata), GFP_KERNEL); in cxl_mock_mem_probe()
1394 if (!mdata) in cxl_mock_mem_probe()
1396 dev_set_drvdata(dev, mdata); in cxl_mock_mem_probe()
1398 mdata->lsa = vmalloc(LSA_SIZE); in cxl_mock_mem_probe()
1399 if (!mdata->lsa) in cxl_mock_mem_probe()
1401 mdata->fw = vmalloc(FW_SIZE); in cxl_mock_mem_probe()
1402 if (!mdata->fw) in cxl_mock_mem_probe()
1404 mdata->fw_slot = 2; in cxl_mock_mem_probe()
1406 rc = devm_add_action_or_reset(dev, label_area_release, mdata->lsa); in cxl_mock_mem_probe()
1410 rc = devm_add_action_or_reset(dev, fw_buf_release, mdata->fw); in cxl_mock_mem_probe()
1420 mds->event.buf = (struct cxl_get_event_payload *) mdata->event_buf; in cxl_mock_mem_probe()
1450 mdata->mes.mds = mds; in cxl_mock_mem_probe()
1451 cxl_mock_add_event_logs(&mdata->mes); in cxl_mock_mem_probe()
1469 struct cxl_mockmem_data *mdata = dev_get_drvdata(dev); in security_lock_show() local
1472 !!(mdata->security_state & CXL_PMEM_SEC_STATE_LOCKED)); in security_lock_show()
1478 struct cxl_mockmem_data *mdata = dev_get_drvdata(dev); in security_lock_store() local
1487 if (!(mdata->security_state & CXL_PMEM_SEC_STATE_USER_PASS_SET)) in security_lock_store()
1489 mdata->security_state |= CXL_PMEM_SEC_STATE_LOCKED; in security_lock_store()
1490 mdata->security_state &= ~mask; in security_lock_store()
1502 struct cxl_mockmem_data *mdata = dev_get_drvdata(dev); in fw_buf_checksum_show() local
1510 sha256_update(&sctx, mdata->fw, mdata->fw_size); in fw_buf_checksum_show()