From: sashiko-bot@kernel.org
To: "Srirangan Madhavan" <smadhavan@nvidia.com>
Cc: linux-pci@vger.kernel.org, linux-cxl@vger.kernel.org
Subject: Re: [PATCH v15 10/16] PCI/CXL: Add CXL Device Reset sequencing
Date: Sun, 11 Oct 2026 02:25:05 +0000 [thread overview]
Message-ID: <sashiko-outbox-166975@kernel.org> (raw)
In-Reply-To: <20261011021422.3428136-11-smadhavan@nvidia.com>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] pci: CXL reset timeout silently clamped to 20s, invalidating 100s capability
--
commit 40437b091280a3bac8200508563fab32b5d72e62
Author: Srirangan Madhavan <smadhavan@nvidia.com>
PCI/CXL: Add CXL Device Reset sequencing
This commit implements CXL Device Reset for eligible Type 2 devices. It
introduces functions to disable CXL.cache, initiate reset with Memory
Clear, and wait for completion.
Link: https://git.kernel.org/pub/scm/linux/kernel/git/djiang/linux.git/commit/?id=04f8f84816d724f8b47f4d47a77916ac37c63a49
> diff --git a/drivers/pci/cxl.c b/drivers/pci/cxl.c
> index 471b57391593e..9eb13adf0daa3 100644
> --- a/drivers/pci/cxl.c
> +++ b/drivers/pci/cxl.c
[ ... ]
> +static int cxl_reset_wait_done(struct pci_dev *pdev, int dvsec, u16 cap)
> +{
> + unsigned long deadline;
> + u32 timeout_ms;
> + u16 status2;
> + int idx, rc;
> +
> + idx = FIELD_GET(PCI_DVSEC_CXL_RST_TIMEOUT, cap);
> + if (idx >= ARRAY_SIZE(cxl_reset_timeout_ms)) {
> + pci_warn(pdev,
> + "unknown CXL reset timeout encoding %d; using %u ms\n",
> + idx, CXL_RESET_MAX_WAIT_MS);
> + idx = ARRAY_SIZE(cxl_reset_timeout_ms) - 1;
> + }
> +
> + /* Allow one retry after the mandatory 100 ms quiet period. */
> + timeout_ms = clamp_t(u32, cxl_reset_timeout_ms[idx],
> + CXL_RESET_RRS_WAIT_MS + CXL_RESET_STATUS_POLL_MS,
> + CXL_RESET_MAX_WAIT_MS);
[Severity: Medium]
Does this clamp_t() logic unintentionally override the 100-second
capability?
The CXL 4.0 specification defines reset timeout encodings up to 100 seconds,
and the array cxl_reset_timeout_ms correctly defines 100,000 ms at index 4.
However, the timeout calculation explicitly applies clamp_t() with a
hardcoded upper bound of CXL_RESET_MAX_WAIT_MS, which is defined as 20,000
(20 seconds).
When a device legitimately advertises a 100-second wait requirement via
capability encodings, this silent truncation to 20 seconds could cause
reset operations for compliant devices to prematurely fail with -ETIMEDOUT.
> + msleep(CXL_RESET_RRS_WAIT_MS);
> + deadline = jiffies + msecs_to_jiffies(timeout_ms -
> + CXL_RESET_RRS_WAIT_MS);
[ ... ]
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261011021422.3428136-1-smadhavan@nvidia.com?part=10
next prev parent reply other threads:[~2026-10-11 2:25 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-11 2:14 [PATCH v15 00/16] PCI/CXL: Add CXL reset support for Type 2 devices Srirangan Madhavan
2026-10-11 2:14 ` [PATCH v15 01/16] cxl: Drop stale decoder interleave limit comment Srirangan Madhavan
2026-10-11 2:16 ` sashiko-bot
2026-10-11 2:14 ` [PATCH v15 02/16] cxl: Share CXL port upstream PCI device lookup Srirangan Madhavan
2026-10-11 2:25 ` sashiko-bot
2026-10-11 2:14 ` [PATCH v15 03/16] cxl: Move decoder declarations to shared header Srirangan Madhavan
2026-10-11 2:19 ` sashiko-bot
2026-10-11 2:14 ` [PATCH v15 04/16] cxl: Embed decoder configuration in a standalone structure Srirangan Madhavan
2026-10-11 2:25 ` sashiko-bot
2026-10-11 2:14 ` [PATCH v15 05/16] cxl: Introduce endpoint HDM decoder settings Srirangan Madhavan
2026-10-11 2:22 ` sashiko-bot
2026-10-11 2:14 ` [PATCH v15 06/16] cxl: Move HDM decoder helpers to built-in code Srirangan Madhavan
2026-10-11 2:21 ` sashiko-bot
2026-10-11 2:14 ` [PATCH v15 07/16] cxl: Share HDM decoder register unpacking Srirangan Madhavan
2026-10-11 2:25 ` sashiko-bot
2026-10-11 2:14 ` [PATCH v15 08/16] cxl: Refresh cached PCI HDM decoder settings Srirangan Madhavan
2026-10-11 2:23 ` sashiko-bot
2026-10-11 2:14 ` [PATCH v15 09/16] PCI/CXL: Cache endpoint HDM state during PCI enumeration Srirangan Madhavan
2026-10-11 2:25 ` sashiko-bot
2026-10-11 2:14 ` [PATCH v15 10/16] PCI/CXL: Add CXL Device Reset sequencing Srirangan Madhavan
2026-10-11 2:25 ` sashiko-bot [this message]
2026-10-11 2:14 ` [PATCH v15 11/16] cxl: Validate and synchronize HDM ranges around reset Srirangan Madhavan
2026-10-11 2:21 ` sashiko-bot
2026-10-11 2:14 ` [PATCH v15 12/16] PCI/CXL: Reject reset with unsafe function scope Srirangan Madhavan
2026-10-11 2:28 ` sashiko-bot
2026-10-11 2:14 ` [PATCH v15 13/16] PCI/CXL: Restore CXL state after PCI reset Srirangan Madhavan
2026-10-11 2:25 ` sashiko-bot
2026-10-11 2:14 ` [PATCH v15 14/16] PCI/CXL: Expose CXL Reset as a PCI reset method Srirangan Madhavan
2026-10-11 2:34 ` sashiko-bot
2026-10-11 2:14 ` [PATCH v15 15/16] PCI/CXL: Restore CXL state after CXL bus reset Srirangan Madhavan
2026-10-11 2:24 ` sashiko-bot
2026-10-11 2:14 ` [PATCH v15 16/16] tools/testing/cxl: Add HDM decoder range checks Srirangan Madhavan
2026-10-11 2:22 ` sashiko-bot
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=sashiko-outbox-166975@kernel.org \
--to=sashiko-bot@kernel.org \
--cc=linux-cxl@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
--cc=smadhavan@nvidia.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.