[{"id":3686716,"web_url":"http://patchwork.ozlabs.org/comment/3686716/","msgid":"<20260505213010.234D2C2BCB4@smtp.kernel.org>","list_archive_url":null,"date":"2026-05-05T21:30:09","subject":"Re: [PATCH v17 03/11] cxl: Use common CPER handling for all CXL\n devices","submitter":{"id":93311,"url":"http://patchwork.ozlabs.org/api/people/93311/","name":null,"email":"sashiko-bot@kernel.org"},"content":"Thank you for your contribution! Sashiko AI review found 3 potential issue(s) to consider:\n- [Critical] Stack out-of-bounds read of 448 bytes when copying the CXL header log to the trace event ring buffer, leaking kernel stack memory to userspace.\n- [High] Silent dropping of valid CPER hardware errors for unbound devices.\n- [Medium] Unnecessary device locking based on a flawed premise of object lifetime.\n--\n\ncommit fb7e6f8e6c582af55947d02985f007b61cfc1671\nAuthor: Terry Bowman <terry.bowman@amd.com>\n\ncxl: Use common CPER handling for all CXL devices\n\nThis commit unifies the CPER error handling paths for CXL Port and Endpoint\ndevices by removing the PCI-type specific dispatch. It extends the driver\ncheck and device lock to Port devices, and replaces the memdev lookup with\ndirect use of the PCI device for trace events.\n\n> diff --git a/drivers/cxl/core/ras.c b/drivers/cxl/core/ras.c\n> index d7081caaf5d3f..56611da8357a2 100644\n> --- a/drivers/cxl/core/ras.c\n> +++ b/drivers/cxl/core/ras.c\n\n[ ... ]\n\n> @@ -77,38 +40,20 @@ void cxl_cper_handle_prot_err(struct cxl_cper_prot_err_work_data *data)\n>  \t\tpci_get_domain_bus_and_slot(data->prot_err.agent_addr.segment,\n>  \t\t\t\t\t    data->prot_err.agent_addr.bus,\n>  \t\t\t\t\t    devfn);\n> -\tstruct cxl_memdev *cxlmd;\n> -\tint port_type;\n>  \n>  \tif (!pdev)\n>  \t\treturn;\n>  \n> -\tport_type = pci_pcie_type(pdev);\n> -\tif (port_type == PCI_EXP_TYPE_ROOT_PORT ||\n> -\t    port_type == PCI_EXP_TYPE_DOWNSTREAM ||\n> -\t    port_type == PCI_EXP_TYPE_UPSTREAM) {\n> -\t\tif (data->severity == AER_CORRECTABLE)\n> -\t\t\tcxl_cper_trace_corr_port_prot_err(pdev, data->ras_cap);\n> -\t\telse\n> -\t\t\tcxl_cper_trace_uncorr_port_prot_err(pdev, data->ras_cap);\n> -\n> -\t\treturn;\n> -\t}\n> -\n>  \tguard(device)(&pdev->dev);\n>  \tif (!pdev->dev.driver)\n>  \t\treturn;\n\nWill this silently drop valid CPER hardware errors for unbound Port devices?\n\nPreviously, the port device dispatch block correctly bypassed the driver check\nfor CXL ports. Since the code only logs the CPER data via tracepoints and\nreads the PCI config space for the DSN, is a bound driver actually required?\n\nAlso, is the device lock necessary here?\n\nThe commit message notes \"the existing device lock will ensure the CXL device\nremains accessible while in scope\". However, object lifetime and accessibility\nof pdev are already guaranteed by the reference count acquired via\npci_get_domain_bus_and_slot(), which is released safely by the\n__free(pci_dev_put) cleanup.\n\n> -\tstruct device *mem_dev __free(put_device) = bus_find_device(\n> -\t\t&cxl_bus_type, NULL, pdev, match_memdev_by_parent);\n> -\tif (!mem_dev)\n> -\t\treturn;\n> -\n> -\tcxlmd = to_cxl_memdev(mem_dev);\n>  \tif (data->severity == AER_CORRECTABLE)\n> -\t\tcxl_cper_trace_corr_prot_err(pdev, cxlmd, data->ras_cap);\n> +\t\tcxl_cper_trace_corr_prot_err(pdev, pci_get_dsn(pdev),\n> +\t\t\t\t\t     &data->ras_cap);\n>  \telse\n> -\t\tcxl_cper_trace_uncorr_prot_err(pdev, cxlmd, data->ras_cap);\n> +\t\tcxl_cper_trace_uncorr_prot_err(pdev, pci_get_dsn(pdev),\n> +\t\t\t\t\t       &data->ras_cap);\n\nCan this cause an out-of-bounds read of kernel stack memory?\n\nThe trace event cxl_aer_uncorrectable_error performs a memory copy of the\nheader log:\n\nmemcpy(__entry->header_log, hl, CXL_HEADERLOG_SIZE);\n\nCXL_HEADERLOG_SIZE is 512 bytes, but the hl pointer passed in via\nras_cap->header_log is only a 16-element u32 array (64 bytes) inside\nstruct cxl_ras_capability_regs.\n\nCould this copy 448 bytes of uninitialized stack memory past the array into\nthe userspace trace buffer?","headers":{"Return-Path":"\n <linux-pci+bounces-53796-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-pci@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=jWtPqsgL;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c09:e001:a7::12fc:5321; helo=sto.lore.kernel.org;\n envelope-from=linux-pci+bounces-53796-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=\"jWtPqsgL\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=10.30.226.201"],"Received":["from sto.lore.kernel.org (sto.lore.kernel.org\n [IPv6:2600:3c09:e001:a7::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g9BWC58wgz1yJq\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 06 May 2026 07:30:15 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sto.lore.kernel.org (Postfix) with ESMTP id 711FA301D7FD\n\tfor <incoming@patchwork.ozlabs.org>; Tue,  5 May 2026 21:30:12 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id D53DE346E70;\n\tTue,  5 May 2026 21:30:10 +0000 (UTC)","from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org\n [10.30.226.201])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id A23823644C1\n\tfor <linux-pci@vger.kernel.org>; Tue,  5 May 2026 21:30:10 +0000 (UTC)","by smtp.kernel.org (Postfix) with ESMTPSA id 234D2C2BCB4;\n\tTue,  5 May 2026 21:30:10 +0000 (UTC)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1778016610; cv=none;\n b=VwC8hNL+YLDf1ZllwRAKAgcyP1X8DeGIO3O6l8UDS7YPzMBxiwQith+31zjK+iSY/oWxPEEF9u2dEs41aG6bWXouqGS84d0V/bKDOwEGSfu1MdKn6Gkc/uzZJt2MlkKWrxZcVjEXyI7c6v35CRL8Z7eGTBjV4HcsCaDXJP3T+aA=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1778016610; c=relaxed/simple;\n\tbh=Fjr0+pe6IKzwNvLCaCHDr61vsV9a45l5edQ0TvHz6PQ=;\n\th=From:Subject:To:Cc:In-Reply-To:References:Content-Type:Date:\n\t Message-Id;\n b=NjW+QmC6eF9lMvtSxHgAbT8M7go+Q4bFs9AkxYhbQ6mDVeX3N/YKjcGLLSTba/kS+g4jxk7qXcyPgnYaQxRjLBjBWP3NaBEFBeP7sMxY2jH1yAFpIW5dd4xcU1+hzC8l6fzH3ZlnK3P7hr6wlENFUQN33KyyGPzUs9rZa4yaSa0=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=jWtPqsgL; arc=none smtp.client-ip=10.30.226.201","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;\n\ts=k20201202; t=1778016610;\n\tbh=Fjr0+pe6IKzwNvLCaCHDr61vsV9a45l5edQ0TvHz6PQ=;\n\th=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date:From;\n\tb=jWtPqsgL9XqaCwbbFd/wE/mhA7HU4335CpqVJ4Lp9mWF2SSPD9R9ECp22iWMfrvbC\n\t nWc1GBQL+Z+mgUYkkd1ukf32/tgqARF2TwIRUegfEaBsV+NrvbGuEERBk/n6vhQjsD\n\t 4+rrdTvRB29qNKG3i5qAiJ+PlJU8XYmKjNe3dNguTtYUQ7XHAFLa5HvV8rKcTkRwQJ\n\t ija2vW0I/P7zonwBFV+106DHBhbRQIjeejWv+t2cXWkU6SSj9KKGuFhM3PT4jKTy06\n\t gjjXufFnHEz7Z4eKcgMmzIFC/FVcN1r4n7isQG6RHPPN4KERwGXM8KPYFhq+vOWKwW\n\t xtv+AdEMSGtaw==","From":"sashiko-bot@kernel.org","Subject":"Re: [PATCH v17 03/11] cxl: Use common CPER handling for all CXL\n devices","Reply-To":"sashiko@lists.linux.dev","To":"\"Terry Bowman\" <terry.bowman@amd.com>","Cc":"linux-pci@vger.kernel.org","In-Reply-To":"<20260505173029.2718246-4-terry.bowman@amd.com>","References":"<20260505173029.2718246-4-terry.bowman@amd.com>","Content-Type":"text/plain; charset=utf-8","Content-Transfer-Encoding":"quoted-printable","Date":"Tue, 05 May 2026 21:30:09 +0000","Message-Id":"<20260505213010.234D2C2BCB4@smtp.kernel.org>","Precedence":"bulk","X-Mailing-List":"linux-pci@vger.kernel.org","List-Id":"<linux-pci.vger.kernel.org>","List-Subscribe":"<mailto:linux-pci+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-pci+unsubscribe@vger.kernel.org>"}},{"id":3686737,"web_url":"http://patchwork.ozlabs.org/comment/3686737/","msgid":"<f23888a9-754f-49d9-b8fd-60d590d1cb9b@intel.com>","list_archive_url":null,"date":"2026-05-05T22:02:45","subject":"Re: [PATCH v17 03/11] cxl: Use common CPER handling for all CXL\n devices","submitter":{"id":13225,"url":"http://patchwork.ozlabs.org/api/people/13225/","name":"Dave Jiang","email":"dave.jiang@intel.com"},"content":"On 5/5/26 10:30 AM, Terry Bowman wrote:\n> Fold the Port and Endpoint specific paths in cxl_cper_handle_prot_err()\n> into a single code path. Drop the PCI type dispatch block as both Port\n> and Endpoint devices now go through the same code path.\n> \n> Extend the pdev->dev.driver != NULL gate to Port devices, which previously\n> bypassed it. This check and the existing device lock will ensure the CXL\n> device remains accessible while in scope.\n> \n> Recent trace event changes generalize the interface to take a\n> struct device * for all CXL devices. Update the Endpoint CPER path\n> to pass &pdev->dev (the PCI device) instead of &cxlmd->dev (the\n> memdev). This makes the trace event's \"device=\" field show the PCI\n> BDF for all CPER callers, replacing the prior \"device=memN\" output\n> for Endpoints. Userspace consumers correlating CPER trace events to\n> memdev names must map the PCI BDF back via /sys/bus/cxl/devices/.\n> \n> Remove the bus_find_device(&cxl_bus_type, ..., match_memdev_by_parent)\n> lookup along with the match_memdev_by_parent() helper.\n> \n> Signed-off-by: Terry Bowman <terry.bowman@amd.com>\n\nReviewed-by: Dave Jiang <dave.jiang@intel.com>\n\n\n> \n> ---\n> \n> Changes in v16->v17:\n> - New commit\n> ---\n>  drivers/cxl/core/ras.c | 81 +++++++-----------------------------------\n>  1 file changed, 13 insertions(+), 68 deletions(-)\n> \n> diff --git a/drivers/cxl/core/ras.c b/drivers/cxl/core/ras.c\n> index d7081caaf5d3..56611da8357a 100644\n> --- a/drivers/cxl/core/ras.c\n> +++ b/drivers/cxl/core/ras.c\n> @@ -8,65 +8,28 @@\n>  #include <cxlpci.h>\n>  #include \"trace.h\"\n>  \n> -static void cxl_cper_trace_corr_port_prot_err(struct pci_dev *pdev,\n> -\t\t\t\t\t      struct cxl_ras_capability_regs ras_cap)\n> +static void cxl_cper_trace_corr_prot_err(struct pci_dev *pdev, u64 serial,\n> +\t\t\t\t\t struct cxl_ras_capability_regs *ras_cap)\n>  {\n> -\tu32 status = ras_cap.cor_status & ~ras_cap.cor_mask;\n> +\tu32 status = ras_cap->cor_status & ~ras_cap->cor_mask;\n>  \n> -\ttrace_cxl_aer_correctable_error(&pdev->dev, status, pci_get_dsn(pdev));\n> +\ttrace_cxl_aer_correctable_error(&pdev->dev, status, serial);\n>  }\n>  \n> -static void cxl_cper_trace_uncorr_port_prot_err(struct pci_dev *pdev,\n> -\t\t\t\t\t\tstruct cxl_ras_capability_regs ras_cap)\n> +static void cxl_cper_trace_uncorr_prot_err(struct pci_dev *pdev, u64 serial,\n> +\t\t\t\t\t   struct cxl_ras_capability_regs *ras_cap)\n>  {\n> -\tu32 status = ras_cap.uncor_status & ~ras_cap.uncor_mask;\n> +\tu32 status = ras_cap->uncor_status & ~ras_cap->uncor_mask;\n>  \tu32 fe;\n>  \n>  \tif (hweight32(status) > 1)\n>  \t\tfe = BIT(FIELD_GET(CXL_RAS_CAP_CONTROL_FE_MASK,\n> -\t\t\t\t   ras_cap.cap_control));\n> +\t\t\t\t   ras_cap->cap_control));\n>  \telse\n>  \t\tfe = status;\n>  \n>  \ttrace_cxl_aer_uncorrectable_error(&pdev->dev, status, fe,\n> -\t\t\t\t\t  ras_cap.header_log,\n> -\t\t\t\t\t  pci_get_dsn(pdev));\n> -}\n> -\n> -static void cxl_cper_trace_corr_prot_err(struct pci_dev *pdev,\n> -\t\t\t\t\t struct cxl_memdev *cxlmd,\n> -\t\t\t\t\t struct cxl_ras_capability_regs ras_cap)\n> -{\n> -\tu32 status = ras_cap.cor_status & ~ras_cap.cor_mask;\n> -\n> -\ttrace_cxl_aer_correctable_error(&cxlmd->dev, status,\n> -\t\t\t\t\tpci_get_dsn(pdev));\n> -}\n> -\n> -static void\n> -cxl_cper_trace_uncorr_prot_err(struct pci_dev *pdev,\n> -\t\t\t       struct cxl_memdev *cxlmd,\n> -\t\t\t       struct cxl_ras_capability_regs ras_cap)\n> -{\n> -\tu32 status = ras_cap.uncor_status & ~ras_cap.uncor_mask;\n> -\tu32 fe;\n> -\n> -\tif (hweight32(status) > 1)\n> -\t\tfe = BIT(FIELD_GET(CXL_RAS_CAP_CONTROL_FE_MASK,\n> -\t\t\t\t   ras_cap.cap_control));\n> -\telse\n> -\t\tfe = status;\n> -\n> -\ttrace_cxl_aer_uncorrectable_error(&cxlmd->dev, status, fe,\n> -\t\t\t\t\t  ras_cap.header_log,\n> -\t\t\t\t\t  pci_get_dsn(pdev));\n> -}\n> -\n> -static int match_memdev_by_parent(struct device *dev, const void *uport)\n> -{\n> -\tif (is_cxl_memdev(dev) && dev->parent == uport)\n> -\t\treturn 1;\n> -\treturn 0;\n> +\t\t\t\t\t  ras_cap->header_log, serial);\n>  }\n>  \n>  void cxl_cper_handle_prot_err(struct cxl_cper_prot_err_work_data *data)\n> @@ -77,38 +40,20 @@ void cxl_cper_handle_prot_err(struct cxl_cper_prot_err_work_data *data)\n>  \t\tpci_get_domain_bus_and_slot(data->prot_err.agent_addr.segment,\n>  \t\t\t\t\t    data->prot_err.agent_addr.bus,\n>  \t\t\t\t\t    devfn);\n> -\tstruct cxl_memdev *cxlmd;\n> -\tint port_type;\n>  \n>  \tif (!pdev)\n>  \t\treturn;\n>  \n> -\tport_type = pci_pcie_type(pdev);\n> -\tif (port_type == PCI_EXP_TYPE_ROOT_PORT ||\n> -\t    port_type == PCI_EXP_TYPE_DOWNSTREAM ||\n> -\t    port_type == PCI_EXP_TYPE_UPSTREAM) {\n> -\t\tif (data->severity == AER_CORRECTABLE)\n> -\t\t\tcxl_cper_trace_corr_port_prot_err(pdev, data->ras_cap);\n> -\t\telse\n> -\t\t\tcxl_cper_trace_uncorr_port_prot_err(pdev, data->ras_cap);\n> -\n> -\t\treturn;\n> -\t}\n> -\n>  \tguard(device)(&pdev->dev);\n>  \tif (!pdev->dev.driver)\n>  \t\treturn;\n>  \n> -\tstruct device *mem_dev __free(put_device) = bus_find_device(\n> -\t\t&cxl_bus_type, NULL, pdev, match_memdev_by_parent);\n> -\tif (!mem_dev)\n> -\t\treturn;\n> -\n> -\tcxlmd = to_cxl_memdev(mem_dev);\n>  \tif (data->severity == AER_CORRECTABLE)\n> -\t\tcxl_cper_trace_corr_prot_err(pdev, cxlmd, data->ras_cap);\n> +\t\tcxl_cper_trace_corr_prot_err(pdev, pci_get_dsn(pdev),\n> +\t\t\t\t\t     &data->ras_cap);\n>  \telse\n> -\t\tcxl_cper_trace_uncorr_prot_err(pdev, cxlmd, data->ras_cap);\n> +\t\tcxl_cper_trace_uncorr_prot_err(pdev, pci_get_dsn(pdev),\n> +\t\t\t\t\t       &data->ras_cap);\n>  }\n>  EXPORT_SYMBOL_GPL(cxl_cper_handle_prot_err);\n>","headers":{"Return-Path":"\n <linux-pci+bounces-53804-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-pci@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256\n header.s=Intel header.b=a7geSDpk;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c15:e001:75::12fc:5321; helo=sin.lore.kernel.org;\n envelope-from=linux-pci+bounces-53804-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com\n header.b=\"a7geSDpk\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=198.175.65.13","smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=intel.com","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=intel.com"],"Received":["from sin.lore.kernel.org (sin.lore.kernel.org\n [IPv6:2600:3c15:e001:75::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g9CDt5S1xz1yJq\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 06 May 2026 08:02:54 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sin.lore.kernel.org (Postfix) with ESMTP id C76F93008460\n\tfor <incoming@patchwork.ozlabs.org>; Tue,  5 May 2026 22:02:52 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 7F879204F93;\n\tTue,  5 May 2026 22:02:51 +0000 (UTC)","from mgamail.intel.com (mgamail.intel.com [198.175.65.13])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 36F2315FA81;\n\tTue,  5 May 2026 22:02:49 +0000 (UTC)","from fmviesa007.fm.intel.com ([10.60.135.147])\n  by orvoesa105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 05 May 2026 15:02:49 -0700","from spandruv-mobl5.amr.corp.intel.com (HELO [10.125.110.85])\n ([10.125.110.85])\n  by fmviesa007-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 05 May 2026 15:02:47 -0700"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1778018571; cv=none;\n b=Vxg1yiPM6DBErNREPWx1ERtu+chYLhMn+EVMfpsNDE68ZPoIWTDDIZQrOqlTfGxc21ay1uCA/egKHo6HthZgoKqIJbh8fEE+RM/sFbCH6Vxab+bsYWEjXEP4uYOpgteFmVqHDdvP/EygHDhCXqo8QCryc1e/3S7S61a7YuKKhWY=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1778018571; c=relaxed/simple;\n\tbh=F/d8tQlpNPUaHlsl5sECbpdsjIrt9nJ3+Kn1dBHhpfg=;\n\th=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:\n\t In-Reply-To:Content-Type;\n b=TDUviQmlrzGziIEV0rgaD8dfd8GC9VXm4R6lXqQBmEAXYmBhIBogNPn9vCm4uEYfjPhzW3Yg4Mvp5TJsgjQFpUSdQog3+z2xq99hOvjKmPdD8HOM6vUCs+/g3yDaDcnnYp5fqxoJH5yxlAYgBzNlrRN/2CSMtxIDlRP5xCEDrkY=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=intel.com;\n spf=pass smtp.mailfrom=intel.com;\n dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com\n header.b=a7geSDpk; arc=none smtp.client-ip=198.175.65.13","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple;\n  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;\n  t=1778018570; x=1809554570;\n  h=message-id:date:mime-version:subject:to:cc:references:\n   from:in-reply-to:content-transfer-encoding;\n  bh=F/d8tQlpNPUaHlsl5sECbpdsjIrt9nJ3+Kn1dBHhpfg=;\n  b=a7geSDpkLv1Wk7AYeteT217gi+jdOx2M0qh9rD3QAFXnPywZr8TJhbWU\n   Ai/SiXQJsRbsLFyatpvNYtGpROF6QPrAVF1S9+v+jTtONfXwMsZbfnldP\n   O67moXMQtBCCxE6NdA0+Dd2ugAuMX5vVPqznXHDBQSM+D/VEg78eDivYr\n   7ipkuqdwvwTpRKP5O5JEz1Ky25aQ70J3FwSNN9M/2a0MBCusZDcAaZ+E8\n   Loooc7ABexZMuUgyFkAgooV5U+zgL5ITi5fWmKVe1qpgPQjZrMhL7TKtg\n   OgOvgb6hTCPgZzf9bAXw4dkXWIwZJNkJGY80+nlbNkC9UEdSxoJNYy4x6\n   w==;","X-CSE-ConnectionGUID":["yuZie4oSTzi1FieXJPk60w==","7/m1GmB7SP+OLlaSDS0NUQ=="],"X-CSE-MsgGUID":["LkxORQ0LTkqwY7E0GCiHIQ==","I78p3padTkCvMHTcvka83g=="],"X-IronPort-AV":["E=McAfee;i=\"6800,10657,11777\"; a=\"90010215\"","E=Sophos;i=\"6.23,218,1770624000\";\n   d=\"scan'208\";a=\"90010215\"","E=Sophos;i=\"6.23,218,1770624000\";\n   d=\"scan'208\";a=\"232814098\""],"X-ExtLoop1":"1","Message-ID":"<f23888a9-754f-49d9-b8fd-60d590d1cb9b@intel.com>","Date":"Tue, 5 May 2026 15:02:45 -0700","Precedence":"bulk","X-Mailing-List":"linux-pci@vger.kernel.org","List-Id":"<linux-pci.vger.kernel.org>","List-Subscribe":"<mailto:linux-pci+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-pci+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v17 03/11] cxl: Use common CPER handling for all CXL\n devices","To":"Terry Bowman <terry.bowman@amd.com>, dave@stgolabs.net, jic23@kernel.org,\n alison.schofield@intel.com, djbw@kernel.org, bhelgaas@google.com,\n ming.li@zohomail.com, Smita.KoralahalliChannabasappa@amd.com,\n rrichter@amd.com, PradeepVineshReddy.Kodamati@amd.com, lukas@wunner.de,\n Benjamin.Cheatham@amd.com, sathyanarayanan.kuppuswamy@linux.intel.com,\n vishal.l.verma@intel.com, alucerop@amd.com, ira.weiny@intel.com,\n corbet@lwn.net, rafael@kernel.org, xueshuai@linux.alibaba.com,\n linux-cxl@vger.kernel.org","Cc":"linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org,\n linux-acpi@vger.kernel.org, linux-doc@vger.kernel.org","References":"<20260505173029.2718246-1-terry.bowman@amd.com>\n <20260505173029.2718246-4-terry.bowman@amd.com>","Content-Language":"en-US","From":"Dave Jiang <dave.jiang@intel.com>","In-Reply-To":"<20260505173029.2718246-4-terry.bowman@amd.com>","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"7bit"}}]