summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuixin Liu <kanie@linux.alibaba.com>2026-08-31 17:22:16 +0800
committerDave Jiang <dave.jiang@intel.com>2026-09-17 20:05:17 -0700
commit58b2b1ef28024093063de536c05aaea792226e24 (patch)
treebabba54c34700d62643eb3719ef042140a0800c3
parent97b74de26c81885a6447f5fe87641a2a136f8c7c (diff)
downloadlinux-next-58b2b1ef28024093063de536c05aaea792226e24.tar.gz
linux-next-58b2b1ef28024093063de536c05aaea792226e24.zip
cxl/port: Fix uninitialized coordinates reported for RCDs
cxl_endpoint_get_perf_coordinates() returns success for a Restricted CXL Device without calculating coordinates, so the caller's output array is left uninitialized. Callers treat it as valid and can expose the stack residue as access coordinates. Initialize the coordinates to zero before returning for an RCD. Zeroing in the helper rather than at the caller keeps the @coord output contract the exported function documents. Reported by the Sashiko review bot. Fixes: 5d211c709059 ("cxl: Fix cxl_endpoint_get_perf_coordinate() support for RCH") Signed-off-by: Guixin Liu <kanie@linux.alibaba.com> Reviewed-by: Richard Cheng <icheng@nvidia.com> Reviewed-by: Jonathan Cameron <jonathan.cameron@oss.qualcomm.com> Link: https://patch.msgid.link/20260831092216.540644-3-kanie@linux.alibaba.com Signed-off-by: Dave Jiang <dave.jiang@intel.com>
-rw-r--r--drivers/cxl/core/port.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/cxl/core/port.c b/drivers/cxl/core/port.c
index 625e4aa427db..fea43a92744c 100644
--- a/drivers/cxl/core/port.c
+++ b/drivers/cxl/core/port.c
@@ -2394,8 +2394,10 @@ int cxl_endpoint_get_perf_coordinates(struct cxl_port *port,
* Skip calculation for RCD. Expectation is HMAT already covers RCD case
* since RCH does not support hotplug.
*/
- if (cxlmd->cxlds->rcd)
+ if (cxlmd->cxlds->rcd) {
+ memset(coord, 0, sizeof(*coord) * ACCESS_COORDINATE_MAX);
return 0;
+ }
/*
* Exit the loop when the parent port of the current iter port is cxl