hw/cxl/cxl-mailbox-utils.c | 7 ------- 1 file changed, 7 deletions(-)
From: Fan Ni <fan.ni@samsung.com>
The whole mailbox output payload space is already zeroed after copying
out the input payload, which happens before processing the specific mailbox
command:
https://elixir.bootlin.com/qemu/v8.2.1/source/hw/cxl/cxl-device-utils.c#L204
Signed-off-by: Fan Ni <fan.ni@samsung.com>
---
hw/cxl/cxl-mailbox-utils.c | 7 -------
1 file changed, 7 deletions(-)
diff --git a/hw/cxl/cxl-mailbox-utils.c b/hw/cxl/cxl-mailbox-utils.c
index e5eb97cb91..fda88470a3 100644
--- a/hw/cxl/cxl-mailbox-utils.c
+++ b/hw/cxl/cxl-mailbox-utils.c
@@ -226,7 +226,6 @@ static CXLRetCode cmd_events_get_records(const struct cxl_cmd *cmd,
log_type = payload_in[0];
pl = (CXLGetEventPayload *)payload_out;
- memset(pl, 0, sizeof(*pl));
max_recs = (cxlds->payload_size - CXL_EVENT_PAYLOAD_HDR_SIZE) /
CXL_EVENT_RECORD_SIZE;
@@ -264,7 +263,6 @@ static CXLRetCode cmd_events_get_interrupt_policy(const struct cxl_cmd *cmd,
CXLEventLog *log;
policy = (CXLEventInterruptPolicy *)payload_out;
- memset(policy, 0, sizeof(*policy));
log = &cxlds->event_logs[CXL_EVENT_TYPE_INFO];
if (log->irq_enabled) {
@@ -363,7 +361,6 @@ static CXLRetCode cmd_infostat_identify(const struct cxl_cmd *cmd,
QEMU_BUILD_BUG_ON(sizeof(*is_identify) != 18);
is_identify = (void *)payload_out;
- memset(is_identify, 0, sizeof(*is_identify));
is_identify->pcie_vid = class->vendor_id;
is_identify->pcie_did = class->device_id;
if (object_dynamic_cast(OBJECT(cci->d), TYPE_CXL_USP)) {
@@ -597,7 +594,6 @@ static CXLRetCode cmd_infostat_bg_op_sts(const struct cxl_cmd *cmd,
QEMU_BUILD_BUG_ON(sizeof(*bg_op_status) != 8);
bg_op_status = (void *)payload_out;
- memset(bg_op_status, 0, sizeof(*bg_op_status));
bg_op_status->status = cci->bg.complete_pct << 1;
if (cci->bg.runtime > 0) {
bg_op_status->status |= 1U << 0;
@@ -636,7 +632,6 @@ static CXLRetCode cmd_firmware_update_get_info(const struct cxl_cmd *cmd,
}
fw_info = (void *)payload_out;
- memset(fw_info, 0, sizeof(*fw_info));
fw_info->slots_supported = 2;
fw_info->slot_info = BIT(0) | BIT(3);
@@ -792,7 +787,6 @@ static CXLRetCode cmd_identify_memory_device(const struct cxl_cmd *cmd,
}
id = (void *)payload_out;
- memset(id, 0, sizeof(*id));
snprintf(id->fw_revision, 0x10, "BWFW VERSION %02d", 0);
@@ -1079,7 +1073,6 @@ static CXLRetCode cmd_media_get_poison_list(const struct cxl_cmd *cmd,
out_pl_len = sizeof(*out) + record_count * sizeof(out->records[0]);
assert(out_pl_len <= CXL_MAILBOX_MAX_PAYLOAD_SIZE);
- memset(out, 0, out_pl_len);
QLIST_FOREACH(ent, poison_list, node) {
uint64_t start, stop;
--
2.43.0
On Wed, 21 Feb 2024 14:18:11 -0800 nifan.cxl@gmail.com wrote: > From: Fan Ni <fan.ni@samsung.com> > > The whole mailbox output payload space is already zeroed after copying > out the input payload, which happens before processing the specific mailbox > command: > https://elixir.bootlin.com/qemu/v8.2.1/source/hw/cxl/cxl-device-utils.c#L204 > > Signed-off-by: Fan Ni <fan.ni@samsung.com> Good point. I've applied this to my local tree - not rushing on this one. Jonathan > --- > hw/cxl/cxl-mailbox-utils.c | 7 ------- > 1 file changed, 7 deletions(-) > > diff --git a/hw/cxl/cxl-mailbox-utils.c b/hw/cxl/cxl-mailbox-utils.c > index e5eb97cb91..fda88470a3 100644 > --- a/hw/cxl/cxl-mailbox-utils.c > +++ b/hw/cxl/cxl-mailbox-utils.c > @@ -226,7 +226,6 @@ static CXLRetCode cmd_events_get_records(const struct cxl_cmd *cmd, > log_type = payload_in[0]; > > pl = (CXLGetEventPayload *)payload_out; > - memset(pl, 0, sizeof(*pl)); > > max_recs = (cxlds->payload_size - CXL_EVENT_PAYLOAD_HDR_SIZE) / > CXL_EVENT_RECORD_SIZE; > @@ -264,7 +263,6 @@ static CXLRetCode cmd_events_get_interrupt_policy(const struct cxl_cmd *cmd, > CXLEventLog *log; > > policy = (CXLEventInterruptPolicy *)payload_out; > - memset(policy, 0, sizeof(*policy)); > > log = &cxlds->event_logs[CXL_EVENT_TYPE_INFO]; > if (log->irq_enabled) { > @@ -363,7 +361,6 @@ static CXLRetCode cmd_infostat_identify(const struct cxl_cmd *cmd, > QEMU_BUILD_BUG_ON(sizeof(*is_identify) != 18); > > is_identify = (void *)payload_out; > - memset(is_identify, 0, sizeof(*is_identify)); > is_identify->pcie_vid = class->vendor_id; > is_identify->pcie_did = class->device_id; > if (object_dynamic_cast(OBJECT(cci->d), TYPE_CXL_USP)) { > @@ -597,7 +594,6 @@ static CXLRetCode cmd_infostat_bg_op_sts(const struct cxl_cmd *cmd, > QEMU_BUILD_BUG_ON(sizeof(*bg_op_status) != 8); > > bg_op_status = (void *)payload_out; > - memset(bg_op_status, 0, sizeof(*bg_op_status)); > bg_op_status->status = cci->bg.complete_pct << 1; > if (cci->bg.runtime > 0) { > bg_op_status->status |= 1U << 0; > @@ -636,7 +632,6 @@ static CXLRetCode cmd_firmware_update_get_info(const struct cxl_cmd *cmd, > } > > fw_info = (void *)payload_out; > - memset(fw_info, 0, sizeof(*fw_info)); > > fw_info->slots_supported = 2; > fw_info->slot_info = BIT(0) | BIT(3); > @@ -792,7 +787,6 @@ static CXLRetCode cmd_identify_memory_device(const struct cxl_cmd *cmd, > } > > id = (void *)payload_out; > - memset(id, 0, sizeof(*id)); > > snprintf(id->fw_revision, 0x10, "BWFW VERSION %02d", 0); > > @@ -1079,7 +1073,6 @@ static CXLRetCode cmd_media_get_poison_list(const struct cxl_cmd *cmd, > out_pl_len = sizeof(*out) + record_count * sizeof(out->records[0]); > assert(out_pl_len <= CXL_MAILBOX_MAX_PAYLOAD_SIZE); > > - memset(out, 0, out_pl_len); > QLIST_FOREACH(ent, poison_list, node) { > uint64_t start, stop; >
© 2016 - 2024 Red Hat, Inc.