From: Jonathan Cameron <jonathan.cameron@huawei.com>
To: <shiju.jose@huawei.com>
Cc: <qemu-devel@nongnu.org>, <linux-cxl@vger.kernel.org>,
<mst@redhat.com>, <peter.maydell@linaro.org>, <dave@stgolabs.net>,
<linuxarm@huawei.com>
Subject: Re: [PATCH 1/3] hw/cxl: Add fixes in maintenance and memory sparing
Date: Thu, 5 Mar 2026 10:57:46 +0000 [thread overview]
Message-ID: <20260305105746.00000529@huawei.com> (raw)
In-Reply-To: <20260227223207.972-2-shiju.jose@huawei.com>
On Fri, 27 Feb 2026 22:32:04 +0000
<shiju.jose@huawei.com> wrote:
> From: Shiju Jose <shiju.jose@huawei.com>
Hi Shiju,
Perhaps a more specific title would help people understand quickly what
type of fix this is?
Something like:
hw/cxl: Fix handling of component ID to not assume it is a string.
>
> Add following fixes to the commit: hw/cxl: Add support for Maintenance
> command and Post Package Repair (PPR).
That just wants to be a reference to the fixes tag.
>
> 1. In cxl_create_mem_sparing_event_records(), replace strncpy with memcpy to
> solve coverity warning because full size of the array to use as length in
> strncpy to copy the entire component id data, which is 16 bytes.
I wouldn't necessarily focus on the coverity issue bit of this, but rather that
it's not a string so memcpy is the correct function to use. Then flag it as
as being identified as a result of the coverity warning.
>
> 2. In cxl_maintenance_insert(),
> - replace strncpy with memcpy in to copy full data because component id is
> 16 bytes data.
> - remove memset which is not required.
>
> Reported-by: Peter Maydell <peter.maydell@linaro.org>
The original patch is upstream, so need a Fixes tag. I can't remember how
we mark coverity issue closures, so look for a similar patch and copy that
style. Maybe just a Closes tag for Peter's email pointing it out.
Code looks good.
> Signed-off-by: Shiju Jose <shiju.jose@huawei.com>
> ---
> hw/cxl/cxl-mailbox-utils.c | 4 ++--
> hw/mem/cxl_type3.c | 4 +---
> 2 files changed, 3 insertions(+), 5 deletions(-)
>
> diff --git a/hw/cxl/cxl-mailbox-utils.c b/hw/cxl/cxl-mailbox-utils.c
> index c83b5f90d4..9c99422cd4 100644
> --- a/hw/cxl/cxl-mailbox-utils.c
> +++ b/hw/cxl/cxl-mailbox-utils.c
> @@ -1994,8 +1994,8 @@ static void cxl_create_mem_sparing_event_records(CXLType3Dev *ct3d,
> stw_le_p(&event_rec.column, ent->column);
> event_rec.sub_channel = ent->sub_channel;
> if (ent->validity_flags & CXL_MSER_VALID_COMP_ID) {
> - strncpy((char *)event_rec.component_id, (char *)ent->component_id,
> - sizeof(event_rec.component_id));
> + memcpy(event_rec.component_id, ent->component_id,
> + sizeof(event_rec.component_id));
> }
> } else if (sparing_pi) {
> event_rec.flags = CXL_MSER_FLAGS_QUERY_RESOURCES;
> diff --git a/hw/mem/cxl_type3.c b/hw/mem/cxl_type3.c
> index 4739239da3..3cb1096e16 100644
> --- a/hw/mem/cxl_type3.c
> +++ b/hw/mem/cxl_type3.c
> @@ -1767,7 +1767,6 @@ static void cxl_maintenance_insert(CXLType3Dev *ct3d, uint64_t dpa,
> }
> }
> m = g_new0(CXLMaintenance, 1);
> - memset(m, 0, sizeof(*m));
> m->dpa = dpa;
> m->validity_flags = 0;
>
> @@ -1804,8 +1803,7 @@ static void cxl_maintenance_insert(CXLType3Dev *ct3d, uint64_t dpa,
> m->validity_flags |= CXL_MSER_VALID_SUB_CHANNEL;
> }
> if (component_id) {
> - strncpy((char *)m->component_id, component_id,
> - sizeof(m->component_id) - 1);
> + memcpy(m->component_id, component_id, sizeof(m->component_id));
> m->validity_flags |= CXL_MSER_VALID_COMP_ID;
> if (has_comp_id_pldm && is_comp_id_pldm) {
> m->validity_flags |= CXL_MSER_VALID_COMP_ID_FORMAT;
WARNING: multiple messages have this Message-ID (diff)
From: Jonathan Cameron via qemu development <qemu-devel@nongnu.org>
To: <shiju.jose@huawei.com>
Cc: <qemu-devel@nongnu.org>, <linux-cxl@vger.kernel.org>,
<mst@redhat.com>, <peter.maydell@linaro.org>, <dave@stgolabs.net>,
<linuxarm@huawei.com>
Subject: Re: [PATCH 1/3] hw/cxl: Add fixes in maintenance and memory sparing
Date: Thu, 5 Mar 2026 10:57:46 +0000 [thread overview]
Message-ID: <20260305105746.00000529@huawei.com> (raw)
In-Reply-To: <20260227223207.972-2-shiju.jose@huawei.com>
On Fri, 27 Feb 2026 22:32:04 +0000
<shiju.jose@huawei.com> wrote:
> From: Shiju Jose <shiju.jose@huawei.com>
Hi Shiju,
Perhaps a more specific title would help people understand quickly what
type of fix this is?
Something like:
hw/cxl: Fix handling of component ID to not assume it is a string.
>
> Add following fixes to the commit: hw/cxl: Add support for Maintenance
> command and Post Package Repair (PPR).
That just wants to be a reference to the fixes tag.
>
> 1. In cxl_create_mem_sparing_event_records(), replace strncpy with memcpy to
> solve coverity warning because full size of the array to use as length in
> strncpy to copy the entire component id data, which is 16 bytes.
I wouldn't necessarily focus on the coverity issue bit of this, but rather that
it's not a string so memcpy is the correct function to use. Then flag it as
as being identified as a result of the coverity warning.
>
> 2. In cxl_maintenance_insert(),
> - replace strncpy with memcpy in to copy full data because component id is
> 16 bytes data.
> - remove memset which is not required.
>
> Reported-by: Peter Maydell <peter.maydell@linaro.org>
The original patch is upstream, so need a Fixes tag. I can't remember how
we mark coverity issue closures, so look for a similar patch and copy that
style. Maybe just a Closes tag for Peter's email pointing it out.
Code looks good.
> Signed-off-by: Shiju Jose <shiju.jose@huawei.com>
> ---
> hw/cxl/cxl-mailbox-utils.c | 4 ++--
> hw/mem/cxl_type3.c | 4 +---
> 2 files changed, 3 insertions(+), 5 deletions(-)
>
> diff --git a/hw/cxl/cxl-mailbox-utils.c b/hw/cxl/cxl-mailbox-utils.c
> index c83b5f90d4..9c99422cd4 100644
> --- a/hw/cxl/cxl-mailbox-utils.c
> +++ b/hw/cxl/cxl-mailbox-utils.c
> @@ -1994,8 +1994,8 @@ static void cxl_create_mem_sparing_event_records(CXLType3Dev *ct3d,
> stw_le_p(&event_rec.column, ent->column);
> event_rec.sub_channel = ent->sub_channel;
> if (ent->validity_flags & CXL_MSER_VALID_COMP_ID) {
> - strncpy((char *)event_rec.component_id, (char *)ent->component_id,
> - sizeof(event_rec.component_id));
> + memcpy(event_rec.component_id, ent->component_id,
> + sizeof(event_rec.component_id));
> }
> } else if (sparing_pi) {
> event_rec.flags = CXL_MSER_FLAGS_QUERY_RESOURCES;
> diff --git a/hw/mem/cxl_type3.c b/hw/mem/cxl_type3.c
> index 4739239da3..3cb1096e16 100644
> --- a/hw/mem/cxl_type3.c
> +++ b/hw/mem/cxl_type3.c
> @@ -1767,7 +1767,6 @@ static void cxl_maintenance_insert(CXLType3Dev *ct3d, uint64_t dpa,
> }
> }
> m = g_new0(CXLMaintenance, 1);
> - memset(m, 0, sizeof(*m));
> m->dpa = dpa;
> m->validity_flags = 0;
>
> @@ -1804,8 +1803,7 @@ static void cxl_maintenance_insert(CXLType3Dev *ct3d, uint64_t dpa,
> m->validity_flags |= CXL_MSER_VALID_SUB_CHANNEL;
> }
> if (component_id) {
> - strncpy((char *)m->component_id, component_id,
> - sizeof(m->component_id) - 1);
> + memcpy(m->component_id, component_id, sizeof(m->component_id));
> m->validity_flags |= CXL_MSER_VALID_COMP_ID;
> if (has_comp_id_pldm && is_comp_id_pldm) {
> m->validity_flags |= CXL_MSER_VALID_COMP_ID_FORMAT;
next prev parent reply other threads:[~2026-03-05 10:58 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-27 22:32 [PATCH 0/3] hw/cxl: Add fixes in maintenance, PPR and event records shiju.jose
2026-02-27 22:32 ` shiju.jose--- via qemu development
2026-02-27 22:32 ` [PATCH 1/3] hw/cxl: Add fixes in maintenance and memory sparing shiju.jose
2026-02-27 22:32 ` shiju.jose--- via qemu development
2026-03-05 10:57 ` Jonathan Cameron [this message]
2026-03-05 10:57 ` Jonathan Cameron via qemu development
2026-03-05 15:55 ` Shiju Jose
2026-03-05 15:55 ` Shiju Jose via qemu development
2026-02-27 22:32 ` [PATCH 2/3] hw/cxl: Add fixes in Post Package Repair (PPR) shiju.jose
2026-02-27 22:32 ` shiju.jose--- via qemu development
2026-03-06 9:01 ` Jonathan Cameron
2026-03-06 9:01 ` Jonathan Cameron via qemu development
2026-02-27 22:32 ` [PATCH 3/3] hw/cxl/events: Fixes for component id in event records generation shiju.jose
2026-02-27 22:32 ` shiju.jose--- via qemu development
2026-03-05 10:59 ` Jonathan Cameron
2026-03-05 10:59 ` Jonathan Cameron via qemu development
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260305105746.00000529@huawei.com \
--to=jonathan.cameron@huawei.com \
--cc=dave@stgolabs.net \
--cc=linux-cxl@vger.kernel.org \
--cc=linuxarm@huawei.com \
--cc=mst@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=shiju.jose@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.