From: Alison Schofield <alison.schofield@intel.com>
To: Terry Bowman <terry.bowman@amd.com>
Cc: <dave@stgolabs.net>, <jic23@kernel.org>, <dave.jiang@intel.com>,
<vishal.l.verma@intel.com>, <ira.weiny@intel.com>,
<djbw@kernel.org>, <ming.li@zohomail.com>, <rrichter@amd.com>,
<Benjamin.Cheatham@amd.com>,
<Smita.KoralahalliChannabasappa@amd.com>,
<stable@vger.kernel.org>, <linux-cxl@vger.kernel.org>,
<linux-kernel@vger.kernel.org>,
<PradeepVineshReddy.Kodamati@amd.com>
Subject: Re: [PATCH] cxl/ras: Fix match_memdev_by_parent() pointer type mismatch
Date: Tue, 9 Jun 2026 10:10:13 -0700 [thread overview]
Message-ID: <aihI9XAslh04a2T_@aschofie-mobl2.lan> (raw)
In-Reply-To: <20260608224319.587614-1-terry.bowman@amd.com>
On Mon, Jun 08, 2026 at 05:43:19PM -0500, Terry Bowman wrote:
> bus_find_device() passes its data argument directly to the match
> function as a const void *. match_memdev_by_parent() compares
> dev->parent against this pointer:
>
> dev->parent == uport
>
> cxlmd->dev.parent is set in cxl_memdev_alloc() as:
>
> dev->parent = cxlds->dev; /* cxlds->dev == &pdev->dev */
>
> So cxlmd->dev.parent holds a struct device * pointing to &pdev->dev.
> However, bus_find_device() is called with pdev (struct pci_dev *)
> rather than &pdev->dev (struct device *). Since struct pci_dev does
> not begin with struct device, the two pointer values differ, causing
> the comparison to always evaluate false.
>
> As a result, cxl_cper_handle_prot_err() silently drops every CPER
> error report for CXL endpoint devices -- bus_find_device() always
> returns NULL and the function returns early without emitting any
> kernel trace event.
>
> Fix by passing &pdev->dev instead of pdev.
>
> Fixes: 3c70ec71abda ("cxl/ras: Fix CPER handler device confusion")
> Reported-by: Sashiko <sashiko@linuxfoundation.org>
> Signed-off-by: Terry Bowman <terry.bowman@amd.com>
Hi Terry,
The commit log is burying the lead- no endpoint errors reported.
There is no need for the full struct layout analysis in the
changelog. The important part in the functional regression
and the pointer mismatch as root cause.
Please reframe the commit message along the lines of background,
problem, cause, fix, and validation. Something like-
CXL endpoint CPER protocol errors are processed by ...
Following commit 3c70ec71abda, endpoint CPER protocol errors are
silently dropped and no trace events are emitted. This happens
because bus_find_device() is called with the wrong pointer type,
so the memdev parent match never succeeds.
Fix it by ...
How do we know it works now?
-- Alison
> ---
> drivers/cxl/core/ras.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/cxl/core/ras.c b/drivers/cxl/core/ras.c
> index 006c6ffc2f56..7ec2dab152a7 100644
> --- a/drivers/cxl/core/ras.c
> +++ b/drivers/cxl/core/ras.c
> @@ -94,8 +94,7 @@ void cxl_cper_handle_prot_err(struct cxl_cper_prot_err_work_data *data)
> if (!pdev->dev.driver)
> return;
>
> - struct device *mem_dev __free(put_device) = bus_find_device(
> - &cxl_bus_type, NULL, pdev, match_memdev_by_parent);
> + struct device *mem_dev __free(put_device) = bus_find_device(&cxl_bus_type, NULL, &pdev->dev, match_memdev_by_parent);
> if (!mem_dev)
> return;
>
> --
> 2.34.1
>
next prev parent reply other threads:[~2026-06-09 17:10 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-08 22:43 Terry Bowman
2026-06-09 14:34 ` Dave Jiang
2026-06-09 17:10 ` Alison Schofield [this message]
2026-06-09 18:17 ` Bowman, Terry
2026-06-09 20:33 ` Alison Schofield
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=aihI9XAslh04a2T_@aschofie-mobl2.lan \
--to=alison.schofield@intel.com \
--cc=Benjamin.Cheatham@amd.com \
--cc=PradeepVineshReddy.Kodamati@amd.com \
--cc=Smita.KoralahalliChannabasappa@amd.com \
--cc=dave.jiang@intel.com \
--cc=dave@stgolabs.net \
--cc=djbw@kernel.org \
--cc=ira.weiny@intel.com \
--cc=jic23@kernel.org \
--cc=linux-cxl@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=ming.li@zohomail.com \
--cc=rrichter@amd.com \
--cc=stable@vger.kernel.org \
--cc=terry.bowman@amd.com \
--cc=vishal.l.verma@intel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®