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