Message ID | 20240221221824.1092966-1-nifan.cxl@gmail.com |
---|---|
State | New, archived |
Headers | show |
Series | [v2] hw/cxl/cxl-mailbox-utils: remove unneeded mailbox output payload space zeroing | expand |
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; >
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;