hw/cxl: Correctly handle variable sized mailbox input payloads.
A placeholder of ~0 is used to indicate variable payload size.
Whilst the checks for output payload correctly took this into
account, those for input payload did not.
This results in failure of the Set LSA command.
Fixes: 464e14ac43
("hw/cxl/device: Implement basic mailbox (8.2.8.4)")
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Message-Id: <20220817145759.32603-4-Jonathan.Cameron@huawei.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
66a2356485
commit
4f41b4e445
@ -425,7 +425,7 @@ void cxl_process_mailbox(CXLDeviceState *cxl_dstate)
|
||||
cxl_cmd = &cxl_cmd_set[set][cmd];
|
||||
h = cxl_cmd->handler;
|
||||
if (h) {
|
||||
if (len == cxl_cmd->in) {
|
||||
if (len == cxl_cmd->in || cxl_cmd->in == ~0) {
|
||||
cxl_cmd->payload = cxl_dstate->mbox_reg_state +
|
||||
A_CXL_DEV_CMD_PAYLOAD;
|
||||
ret = (*h)(cxl_cmd, cxl_dstate, &len);
|
||||
|
Loading…
Reference in New Issue
Block a user