Skip to content

Commit 6eb52f6

Browse files
Davidlohr Buesodavejiang
authored andcommitted
tools/testing/cxl: Set Shutdown State support
Add support to emulate the CXL Set Shutdown State operation. Signed-off-by: Davidlohr Bueso <dave@stgolabs.net> Reviewed-by: Dave Jiang <dave.jiang@intel.com> Reviewed-by: Li Ming <ming.li@zohomail.com> Reviewed-by: Ira Weiny <ira.weiny@intel.com> Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Link: https://patch.msgid.link/20250220220235.276831-5-dave@stgolabs.net Signed-off-by: Dave Jiang <dave.jiang@intel.com>
1 parent 7d0ecc0 commit 6eb52f6

File tree

1 file changed

+23
-0
lines changed
  • tools/testing/cxl/test

1 file changed

+23
-0
lines changed

tools/testing/cxl/test/mem.c

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,10 @@ static struct cxl_cel_entry mock_cel[] = {
6565
.opcode = cpu_to_le16(CXL_MBOX_OP_GET_HEALTH_INFO),
6666
.effect = CXL_CMD_EFFECT_NONE,
6767
},
68+
{
69+
.opcode = cpu_to_le16(CXL_MBOX_OP_SET_SHUTDOWN_STATE),
70+
.effect = POLICY_CHANGE_IMMEDIATE,
71+
},
6872
{
6973
.opcode = cpu_to_le16(CXL_MBOX_OP_GET_POISON),
7074
.effect = CXL_CMD_EFFECT_NONE,
@@ -161,6 +165,7 @@ struct cxl_mockmem_data {
161165
u8 event_buf[SZ_4K];
162166
u64 timestamp;
163167
unsigned long sanitize_timeout;
168+
u8 shutdown_state;
164169
};
165170

166171
static struct mock_event_log *event_find_log(struct device *dev, int log_type)
@@ -1088,6 +1093,21 @@ static int mock_health_info(struct cxl_mbox_cmd *cmd)
10881093
return 0;
10891094
}
10901095

1096+
static int mock_set_shutdown_state(struct cxl_mockmem_data *mdata,
1097+
struct cxl_mbox_cmd *cmd)
1098+
{
1099+
struct cxl_mbox_set_shutdown_state_in *ss = cmd->payload_in;
1100+
1101+
if (cmd->size_in != sizeof(*ss))
1102+
return -EINVAL;
1103+
1104+
if (cmd->size_out != 0)
1105+
return -EINVAL;
1106+
1107+
mdata->shutdown_state = ss->state;
1108+
return 0;
1109+
}
1110+
10911111
static struct mock_poison {
10921112
struct cxl_dev_state *cxlds;
10931113
u64 dpa;
@@ -1421,6 +1441,9 @@ static int cxl_mock_mbox_send(struct cxl_mailbox *cxl_mbox,
14211441
case CXL_MBOX_OP_PASSPHRASE_SECURE_ERASE:
14221442
rc = mock_passphrase_secure_erase(mdata, cmd);
14231443
break;
1444+
case CXL_MBOX_OP_SET_SHUTDOWN_STATE:
1445+
rc = mock_set_shutdown_state(mdata, cmd);
1446+
break;
14241447
case CXL_MBOX_OP_GET_POISON:
14251448
rc = mock_get_poison(cxlds, cmd);
14261449
break;

0 commit comments

Comments
 (0)