+++ /dev/null
-From 42f84f49c153d099f7d63bd04b3cd655fc850985 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 14 Jan 2026 11:14:23 +0100
-Subject: ACPI: APEI: GHES: Add helper for CPER CXL protocol errors checks
-
-From: Fabio M. De Francesco <fabio.m.de.francesco@linux.intel.com>
-
-[ Upstream commit 70205869686212eb8e4cddf02bf87fd5fd597bc2 ]
-
-Move the CPER CXL protocol errors validity check out of
-cxl_cper_post_prot_err() to new cxl_cper_sec_prot_err_valid() and limit
-the serial number check only to CXL agents that are CXL devices (UEFI
-v2.10, Appendix N.2.13).
-
-Export the new symbol for reuse by ELOG.
-
-Reviewed-by: Dave Jiang <dave.jiang@intel.com>
-Reviewed-by: Hanjun Guo <guohanjun@huawei.com>
-Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>
-Signed-off-by: Fabio M. De Francesco <fabio.m.de.francesco@linux.intel.com>
-[ rjw: Subject tweak ]
-Link: https://patch.msgid.link/20260114101543.85926-4-fabio.m.de.francesco@linux.intel.com
-Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
-Stable-dep-of: b584bfbd7ec4 ("ACPI: APEI: GHES: Disable KASAN instrumentation when compile testing with clang < 18")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/acpi/apei/Makefile | 1 +
- drivers/acpi/apei/ghes.c | 18 +----------------
- drivers/acpi/apei/ghes_helpers.c | 33 ++++++++++++++++++++++++++++++++
- include/cxl/event.h | 10 ++++++++++
- 4 files changed, 45 insertions(+), 17 deletions(-)
- create mode 100644 drivers/acpi/apei/ghes_helpers.c
-
-diff --git a/drivers/acpi/apei/Makefile b/drivers/acpi/apei/Makefile
-index 2c474e6477e12..5db61dfb46915 100644
---- a/drivers/acpi/apei/Makefile
-+++ b/drivers/acpi/apei/Makefile
-@@ -1,6 +1,7 @@
- # SPDX-License-Identifier: GPL-2.0
- obj-$(CONFIG_ACPI_APEI) += apei.o
- obj-$(CONFIG_ACPI_APEI_GHES) += ghes.o
-+obj-$(CONFIG_ACPI_APEI_PCIEAER) += ghes_helpers.o
- obj-$(CONFIG_ACPI_APEI_EINJ) += einj.o
- einj-y := einj-core.o
- einj-$(CONFIG_ACPI_APEI_EINJ_CXL) += einj-cxl.o
-diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c
-index 6de64a4b49998..1d0fbfcd81dd9 100644
---- a/drivers/acpi/apei/ghes.c
-+++ b/drivers/acpi/apei/ghes.c
-@@ -712,24 +712,8 @@ static void cxl_cper_post_prot_err(struct cxl_cper_sec_prot_err *prot_err,
- struct cxl_cper_prot_err_work_data wd;
- u8 *dvsec_start, *cap_start;
-
-- if (!(prot_err->valid_bits & PROT_ERR_VALID_AGENT_ADDRESS)) {
-- pr_err_ratelimited("CXL CPER invalid agent type\n");
-+ if (cxl_cper_sec_prot_err_valid(prot_err))
- return;
-- }
--
-- if (!(prot_err->valid_bits & PROT_ERR_VALID_ERROR_LOG)) {
-- pr_err_ratelimited("CXL CPER invalid protocol error log\n");
-- return;
-- }
--
-- if (prot_err->err_len != sizeof(struct cxl_ras_capability_regs)) {
-- pr_err_ratelimited("CXL CPER invalid RAS Cap size (%u)\n",
-- prot_err->err_len);
-- return;
-- }
--
-- if (!(prot_err->valid_bits & PROT_ERR_VALID_SERIAL_NUMBER))
-- pr_warn(FW_WARN "CXL CPER no device serial number\n");
-
- switch (prot_err->agent_type) {
- case RCD:
-diff --git a/drivers/acpi/apei/ghes_helpers.c b/drivers/acpi/apei/ghes_helpers.c
-new file mode 100644
-index 0000000000000..f3d162139a974
---- /dev/null
-+++ b/drivers/acpi/apei/ghes_helpers.c
-@@ -0,0 +1,33 @@
-+// SPDX-License-Identifier: GPL-2.0-only
-+// Copyright(c) 2025 Intel Corporation. All rights reserved
-+
-+#include <linux/printk.h>
-+#include <cxl/event.h>
-+
-+int cxl_cper_sec_prot_err_valid(struct cxl_cper_sec_prot_err *prot_err)
-+{
-+ if (!(prot_err->valid_bits & PROT_ERR_VALID_AGENT_ADDRESS)) {
-+ pr_err_ratelimited("CXL CPER invalid agent type\n");
-+ return -EINVAL;
-+ }
-+
-+ if (!(prot_err->valid_bits & PROT_ERR_VALID_ERROR_LOG)) {
-+ pr_err_ratelimited("CXL CPER invalid protocol error log\n");
-+ return -EINVAL;
-+ }
-+
-+ if (prot_err->err_len != sizeof(struct cxl_ras_capability_regs)) {
-+ pr_err_ratelimited("CXL CPER invalid RAS Cap size (%u)\n",
-+ prot_err->err_len);
-+ return -EINVAL;
-+ }
-+
-+ if ((prot_err->agent_type == RCD || prot_err->agent_type == DEVICE ||
-+ prot_err->agent_type == LD || prot_err->agent_type == FMLD) &&
-+ !(prot_err->valid_bits & PROT_ERR_VALID_SERIAL_NUMBER))
-+ pr_warn_ratelimited(FW_WARN
-+ "CXL CPER no device serial number\n");
-+
-+ return 0;
-+}
-+EXPORT_SYMBOL_GPL(cxl_cper_sec_prot_err_valid);
-diff --git a/include/cxl/event.h b/include/cxl/event.h
-index ee1c3dec62fae..95bf546fd3055 100644
---- a/include/cxl/event.h
-+++ b/include/cxl/event.h
-@@ -258,4 +258,14 @@ static inline int cxl_cper_kfifo_get(struct cxl_cper_work_data *wd)
- }
- #endif
-
-+#ifdef CONFIG_ACPI_APEI_PCIEAER
-+int cxl_cper_sec_prot_err_valid(struct cxl_cper_sec_prot_err *prot_err);
-+#else
-+static inline int
-+cxl_cper_sec_prot_err_valid(struct cxl_cper_sec_prot_err *prot_err)
-+{
-+ return -EOPNOTSUPP;
-+}
-+#endif
-+
- #endif /* _LINUX_CXL_EVENT_H */
---
-2.51.0
-
+++ /dev/null
-From ccd3cab8095d5c53eaf8a6598ff339ffaad6a696 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 14 Jan 2026 16:27:11 -0700
-Subject: ACPI: APEI: GHES: Disable KASAN instrumentation when compile testing
- with clang < 18
-
-From: Nathan Chancellor <nathan@kernel.org>
-
-[ Upstream commit b584bfbd7ec417f257f651cc00a90c66e31dfbf1 ]
-
-After a recent innocuous change to drivers/acpi/apei/ghes.c, building
-ARCH=arm64 allmodconfig with clang-17 or older (which has both
-CONFIG_KASAN=y and CONFIG_WERROR=y) fails with:
-
- drivers/acpi/apei/ghes.c:902:13: error: stack frame size (2768) exceeds limit (2048) in 'ghes_do_proc' [-Werror,-Wframe-larger-than]
- 902 | static void ghes_do_proc(struct ghes *ghes,
- | ^
-
-A KASAN pass that removes unneeded stack instrumentation, enabled by
-default in clang-18 [1], drastically improves stack usage in this case.
-
-To avoid the warning in the common allmodconfig case when it can break
-the build, disable KASAN for ghes.o when compile testing with clang-17
-and older. Disabling KASAN outright may hide legitimate runtime issues,
-so live with the warning in that case; the user can either increase the
-frame warning limit or disable -Werror, which they should probably do
-when debugging with KASAN anyways.
-
-Closes: https://github.com/ClangBuiltLinux/linux/issues/2148
-Link: https://github.com/llvm/llvm-project/commit/51fbab134560ece663517bf1e8c2a30300d08f1a [1]
-Signed-off-by: Nathan Chancellor <nathan@kernel.org>
-Cc: All applicable <stable@vger.kernel.org>
-Link: https://patch.msgid.link/20260114-ghes-avoid-wflt-clang-older-than-18-v1-1-9c8248bfe4f4@kernel.org
-Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/acpi/apei/Makefile | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/drivers/acpi/apei/Makefile b/drivers/acpi/apei/Makefile
-index 5db61dfb46915..1a0b85923cd42 100644
---- a/drivers/acpi/apei/Makefile
-+++ b/drivers/acpi/apei/Makefile
-@@ -1,6 +1,10 @@
- # SPDX-License-Identifier: GPL-2.0
- obj-$(CONFIG_ACPI_APEI) += apei.o
- obj-$(CONFIG_ACPI_APEI_GHES) += ghes.o
-+# clang versions prior to 18 may blow out the stack with KASAN
-+ifeq ($(CONFIG_COMPILE_TEST)_$(CONFIG_CC_IS_CLANG)_$(call clang-min-version, 180000),y_y_)
-+KASAN_SANITIZE_ghes.o := n
-+endif
- obj-$(CONFIG_ACPI_APEI_PCIEAER) += ghes_helpers.o
- obj-$(CONFIG_ACPI_APEI_EINJ) += einj.o
- einj-y := einj-core.o
---
-2.51.0
-
+++ /dev/null
-From ccc5d9b1a49cf9f8f592ec6c954bd2d49a4a1ab5 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 23 Jan 2025 08:44:19 +0000
-Subject: acpi/ghes, cper: Recognize and cache CXL Protocol errors
-
-From: Smita Koralahalli <Smita.KoralahalliChannabasappa@amd.com>
-
-[ Upstream commit 315c2f0b53ba2645062627443a12cea73f3dad9c ]
-
-Add support in GHES to detect and process CXL CPER Protocol errors, as
-defined in UEFI v2.10, section N.2.13.
-
-Define struct cxl_cper_prot_err_work_data to cache CXL protocol error
-information, including RAS capabilities and severity, for further
-handling.
-
-These cached CXL CPER records will later be processed by workqueues
-within the CXL subsystem.
-
-Signed-off-by: Smita Koralahalli <Smita.KoralahalliChannabasappa@amd.com>
-Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
-Reviewed-by: Dave Jiang <dave.jiang@intel.com>
-Reviewed-by: Ira Weiny <ira.weiny@intel.com>
-Reviewed-by: Tony Luck <tony.luck@intel.com>
-Reviewed-by: Gregory Price <gourry@gourry.net>
-Reviewed-by: Dan Williams <dan.j.williams@intel.com>
-Link: https://patch.msgid.link/20250123084421.127697-5-Smita.KoralahalliChannabasappa@amd.com
-Signed-off-by: Dave Jiang <dave.jiang@intel.com>
-Stable-dep-of: b584bfbd7ec4 ("ACPI: APEI: GHES: Disable KASAN instrumentation when compile testing with clang < 18")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/acpi/apei/ghes.c | 54 ++++++++++++++++++++++++++++++++++++++++
- include/cxl/event.h | 6 +++++
- 2 files changed, 60 insertions(+)
-
-diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c
-index 98901fbe2f7b7..6de64a4b49998 100644
---- a/drivers/acpi/apei/ghes.c
-+++ b/drivers/acpi/apei/ghes.c
-@@ -705,6 +705,56 @@ static void ghes_defer_non_standard_event(struct acpi_hest_generic_data *gdata,
- schedule_work(&entry->work);
- }
-
-+static void cxl_cper_post_prot_err(struct cxl_cper_sec_prot_err *prot_err,
-+ int severity)
-+{
-+#ifdef CONFIG_ACPI_APEI_PCIEAER
-+ struct cxl_cper_prot_err_work_data wd;
-+ u8 *dvsec_start, *cap_start;
-+
-+ if (!(prot_err->valid_bits & PROT_ERR_VALID_AGENT_ADDRESS)) {
-+ pr_err_ratelimited("CXL CPER invalid agent type\n");
-+ return;
-+ }
-+
-+ if (!(prot_err->valid_bits & PROT_ERR_VALID_ERROR_LOG)) {
-+ pr_err_ratelimited("CXL CPER invalid protocol error log\n");
-+ return;
-+ }
-+
-+ if (prot_err->err_len != sizeof(struct cxl_ras_capability_regs)) {
-+ pr_err_ratelimited("CXL CPER invalid RAS Cap size (%u)\n",
-+ prot_err->err_len);
-+ return;
-+ }
-+
-+ if (!(prot_err->valid_bits & PROT_ERR_VALID_SERIAL_NUMBER))
-+ pr_warn(FW_WARN "CXL CPER no device serial number\n");
-+
-+ switch (prot_err->agent_type) {
-+ case RCD:
-+ case DEVICE:
-+ case LD:
-+ case FMLD:
-+ case RP:
-+ case DSP:
-+ case USP:
-+ memcpy(&wd.prot_err, prot_err, sizeof(wd.prot_err));
-+
-+ dvsec_start = (u8 *)(prot_err + 1);
-+ cap_start = dvsec_start + prot_err->dvsec_len;
-+
-+ memcpy(&wd.ras_cap, cap_start, sizeof(wd.ras_cap));
-+ wd.severity = cper_severity_to_aer(severity);
-+ break;
-+ default:
-+ pr_err_ratelimited("CXL CPER invalid agent type: %d\n",
-+ prot_err->agent_type);
-+ return;
-+ }
-+#endif
-+}
-+
- /* Room for 8 entries for each of the 4 event log queues */
- #define CXL_CPER_FIFO_DEPTH 32
- DEFINE_KFIFO(cxl_cper_fifo, struct cxl_cper_work_data, CXL_CPER_FIFO_DEPTH);
-@@ -806,6 +856,10 @@ static bool ghes_do_proc(struct ghes *ghes,
- ghes_handle_aer(gdata);
- } else if (guid_equal(sec_type, &CPER_SEC_PROC_ARM)) {
- queued = ghes_handle_arm_hw_error(gdata, sev, sync);
-+ } else if (guid_equal(sec_type, &CPER_SEC_CXL_PROT_ERR)) {
-+ struct cxl_cper_sec_prot_err *prot_err = acpi_hest_get_payload(gdata);
-+
-+ cxl_cper_post_prot_err(prot_err, gdata->error_severity);
- } else if (guid_equal(sec_type, &CPER_SEC_CXL_GEN_MEDIA_GUID)) {
- struct cxl_cper_event_rec *rec = acpi_hest_get_payload(gdata);
-
-diff --git a/include/cxl/event.h b/include/cxl/event.h
-index 66d85fc87701d..ee1c3dec62fae 100644
---- a/include/cxl/event.h
-+++ b/include/cxl/event.h
-@@ -232,6 +232,12 @@ struct cxl_ras_capability_regs {
- u32 header_log[16];
- };
-
-+struct cxl_cper_prot_err_work_data {
-+ struct cxl_cper_sec_prot_err prot_err;
-+ struct cxl_ras_capability_regs ras_cap;
-+ int severity;
-+};
-+
- #ifdef CONFIG_ACPI_APEI_GHES
- int cxl_cper_register_work(struct work_struct *work);
- int cxl_cper_unregister_work(struct work_struct *work);
---
-2.51.0
-
+++ /dev/null
-From 4b609d4da1841e3a1af4a4576a6244e8f8830402 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 23 Jan 2025 08:44:17 +0000
-Subject: efi/cper, cxl: Make definitions and structures global
-
-From: Smita Koralahalli <Smita.KoralahalliChannabasappa@amd.com>
-
-[ Upstream commit 958c3a6706863f9f77b21c90d2428473441cd8a1 ]
-
-In preparation to add tracepoint support, move protocol error UUID
-definition to a common location, Also, make struct CXL RAS capability,
-cxl_cper_sec_prot_err and CPER validation flags global for use across
-different modules.
-
-Signed-off-by: Smita Koralahalli <Smita.KoralahalliChannabasappa@amd.com>
-Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
-Reviewed-by: Ira Weiny <ira.weiny@intel.com>
-Reviewed-by: Dave Jiang <dave.jiang@intel.com>
-Reviewed-by: Fan Ni <fan.ni@samsung.com>
-Reviewed-by: Gregory Price <gourry@gourry.net>
-Reviewed-by: Dan Williams <dan.j.williams@intel.com>
-Link: https://patch.msgid.link/20250123084421.127697-3-Smita.KoralahalliChannabasappa@amd.com
-Signed-off-by: Dave Jiang <dave.jiang@intel.com>
-Stable-dep-of: b584bfbd7ec4 ("ACPI: APEI: GHES: Disable KASAN instrumentation when compile testing with clang < 18")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/firmware/efi/cper.c | 1 +
- drivers/firmware/efi/cper_cxl.c | 35 +--------------
- drivers/firmware/efi/cper_cxl.h | 51 ---------------------
- include/cxl/event.h | 80 +++++++++++++++++++++++++++++++++
- include/linux/cper.h | 4 ++
- 5 files changed, 86 insertions(+), 85 deletions(-)
-
-diff --git a/drivers/firmware/efi/cper.c b/drivers/firmware/efi/cper.c
-index e0adbd6df9b53..7fe10a06e68c3 100644
---- a/drivers/firmware/efi/cper.c
-+++ b/drivers/firmware/efi/cper.c
-@@ -25,6 +25,7 @@
- #include <linux/bcd.h>
- #include <acpi/ghes.h>
- #include <ras/ras_event.h>
-+#include <cxl/event.h>
- #include "cper_cxl.h"
-
- /*
-diff --git a/drivers/firmware/efi/cper_cxl.c b/drivers/firmware/efi/cper_cxl.c
-index cbaabcb7382d9..64c0dd27be6ed 100644
---- a/drivers/firmware/efi/cper_cxl.c
-+++ b/drivers/firmware/efi/cper_cxl.c
-@@ -8,27 +8,9 @@
- */
-
- #include <linux/cper.h>
-+#include <cxl/event.h>
- #include "cper_cxl.h"
-
--#define PROT_ERR_VALID_AGENT_TYPE BIT_ULL(0)
--#define PROT_ERR_VALID_AGENT_ADDRESS BIT_ULL(1)
--#define PROT_ERR_VALID_DEVICE_ID BIT_ULL(2)
--#define PROT_ERR_VALID_SERIAL_NUMBER BIT_ULL(3)
--#define PROT_ERR_VALID_CAPABILITY BIT_ULL(4)
--#define PROT_ERR_VALID_DVSEC BIT_ULL(5)
--#define PROT_ERR_VALID_ERROR_LOG BIT_ULL(6)
--
--/* CXL RAS Capability Structure, CXL v3.0 sec 8.2.4.16 */
--struct cxl_ras_capability_regs {
-- u32 uncor_status;
-- u32 uncor_mask;
-- u32 uncor_severity;
-- u32 cor_status;
-- u32 cor_mask;
-- u32 cap_control;
-- u32 header_log[16];
--};
--
- static const char * const prot_err_agent_type_strs[] = {
- "Restricted CXL Device",
- "Restricted CXL Host Downstream Port",
-@@ -40,21 +22,6 @@ static const char * const prot_err_agent_type_strs[] = {
- "CXL Upstream Switch Port",
- };
-
--/*
-- * The layout of the enumeration and the values matches CXL Agent Type
-- * field in the UEFI 2.10 Section N.2.13,
-- */
--enum {
-- RCD, /* Restricted CXL Device */
-- RCH_DP, /* Restricted CXL Host Downstream Port */
-- DEVICE, /* CXL Device */
-- LD, /* CXL Logical Device */
-- FMLD, /* CXL Fabric Manager managed Logical Device */
-- RP, /* CXL Root Port */
-- DSP, /* CXL Downstream Switch Port */
-- USP, /* CXL Upstream Switch Port */
--};
--
- void cxl_cper_print_prot_err(const char *pfx,
- const struct cxl_cper_sec_prot_err *prot_err)
- {
-diff --git a/drivers/firmware/efi/cper_cxl.h b/drivers/firmware/efi/cper_cxl.h
-index 0e3ab0ba17c36..5ce1401ee17af 100644
---- a/drivers/firmware/efi/cper_cxl.h
-+++ b/drivers/firmware/efi/cper_cxl.h
-@@ -10,57 +10,6 @@
- #ifndef LINUX_CPER_CXL_H
- #define LINUX_CPER_CXL_H
-
--/* CXL Protocol Error Section */
--#define CPER_SEC_CXL_PROT_ERR \
-- GUID_INIT(0x80B9EFB4, 0x52B5, 0x4DE3, 0xA7, 0x77, 0x68, 0x78, \
-- 0x4B, 0x77, 0x10, 0x48)
--
--#pragma pack(1)
--
--/* Compute Express Link Protocol Error Section, UEFI v2.10 sec N.2.13 */
--struct cxl_cper_sec_prot_err {
-- u64 valid_bits;
-- u8 agent_type;
-- u8 reserved[7];
--
-- /*
-- * Except for RCH Downstream Port, all the remaining CXL Agent
-- * types are uniquely identified by the PCIe compatible SBDF number.
-- */
-- union {
-- u64 rcrb_base_addr;
-- struct {
-- u8 function;
-- u8 device;
-- u8 bus;
-- u16 segment;
-- u8 reserved_1[3];
-- };
-- } agent_addr;
--
-- struct {
-- u16 vendor_id;
-- u16 device_id;
-- u16 subsystem_vendor_id;
-- u16 subsystem_id;
-- u8 class_code[2];
-- u16 slot;
-- u8 reserved_1[4];
-- } device_id;
--
-- struct {
-- u32 lower_dw;
-- u32 upper_dw;
-- } dev_serial_num;
--
-- u8 capability[60];
-- u16 dvsec_len;
-- u16 err_len;
-- u8 reserved_2[4];
--};
--
--#pragma pack()
--
- void cxl_cper_print_prot_err(const char *pfx,
- const struct cxl_cper_sec_prot_err *prot_err);
-
-diff --git a/include/cxl/event.h b/include/cxl/event.h
-index 0bea1afbd747c..66d85fc87701d 100644
---- a/include/cxl/event.h
-+++ b/include/cxl/event.h
-@@ -152,6 +152,86 @@ struct cxl_cper_work_data {
- struct cxl_cper_event_rec rec;
- };
-
-+#define PROT_ERR_VALID_AGENT_TYPE BIT_ULL(0)
-+#define PROT_ERR_VALID_AGENT_ADDRESS BIT_ULL(1)
-+#define PROT_ERR_VALID_DEVICE_ID BIT_ULL(2)
-+#define PROT_ERR_VALID_SERIAL_NUMBER BIT_ULL(3)
-+#define PROT_ERR_VALID_CAPABILITY BIT_ULL(4)
-+#define PROT_ERR_VALID_DVSEC BIT_ULL(5)
-+#define PROT_ERR_VALID_ERROR_LOG BIT_ULL(6)
-+
-+/*
-+ * The layout of the enumeration and the values matches CXL Agent Type
-+ * field in the UEFI 2.10 Section N.2.13,
-+ */
-+enum {
-+ RCD, /* Restricted CXL Device */
-+ RCH_DP, /* Restricted CXL Host Downstream Port */
-+ DEVICE, /* CXL Device */
-+ LD, /* CXL Logical Device */
-+ FMLD, /* CXL Fabric Manager managed Logical Device */
-+ RP, /* CXL Root Port */
-+ DSP, /* CXL Downstream Switch Port */
-+ USP, /* CXL Upstream Switch Port */
-+};
-+
-+#pragma pack(1)
-+
-+/* Compute Express Link Protocol Error Section, UEFI v2.10 sec N.2.13 */
-+struct cxl_cper_sec_prot_err {
-+ u64 valid_bits;
-+ u8 agent_type;
-+ u8 reserved[7];
-+
-+ /*
-+ * Except for RCH Downstream Port, all the remaining CXL Agent
-+ * types are uniquely identified by the PCIe compatible SBDF number.
-+ */
-+ union {
-+ u64 rcrb_base_addr;
-+ struct {
-+ u8 function;
-+ u8 device;
-+ u8 bus;
-+ u16 segment;
-+ u8 reserved_1[3];
-+ };
-+ } agent_addr;
-+
-+ struct {
-+ u16 vendor_id;
-+ u16 device_id;
-+ u16 subsystem_vendor_id;
-+ u16 subsystem_id;
-+ u8 class_code[2];
-+ u16 slot;
-+ u8 reserved_1[4];
-+ } device_id;
-+
-+ struct {
-+ u32 lower_dw;
-+ u32 upper_dw;
-+ } dev_serial_num;
-+
-+ u8 capability[60];
-+ u16 dvsec_len;
-+ u16 err_len;
-+ u8 reserved_2[4];
-+};
-+
-+#pragma pack()
-+
-+/* CXL RAS Capability Structure, CXL v3.0 sec 8.2.4.16 */
-+struct cxl_ras_capability_regs {
-+ u32 uncor_status;
-+ u32 uncor_mask;
-+ u32 uncor_severity;
-+ u32 cor_status;
-+ u32 cor_mask;
-+ u32 cap_control;
-+ u32 header_log[16];
-+};
-+
- #ifdef CONFIG_ACPI_APEI_GHES
- int cxl_cper_register_work(struct work_struct *work);
- int cxl_cper_unregister_work(struct work_struct *work);
-diff --git a/include/linux/cper.h b/include/linux/cper.h
-index 951291fa50d4f..e9c0331fe204a 100644
---- a/include/linux/cper.h
-+++ b/include/linux/cper.h
-@@ -89,6 +89,10 @@ enum {
- #define CPER_NOTIFY_DMAR \
- GUID_INIT(0x667DD791, 0xC6B3, 0x4c27, 0x8A, 0x6B, 0x0F, 0x8E, \
- 0x72, 0x2D, 0xEB, 0x41)
-+/* CXL Protocol Error Section */
-+#define CPER_SEC_CXL_PROT_ERR \
-+ GUID_INIT(0x80B9EFB4, 0x52B5, 0x4DE3, 0xA7, 0x77, 0x68, 0x78, \
-+ 0x4B, 0x77, 0x10, 0x48)
-
- /* CXL Event record UUIDs are formatted as GUIDs and reported in section type */
- /*
---
-2.51.0
-
+++ /dev/null
-From 359440e90906fcc3deb97c427092d424594cf730 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 23 Jan 2025 08:44:16 +0000
-Subject: efi/cper, cxl: Prefix protocol error struct and function names with
- cxl_
-
-From: Smita Koralahalli <Smita.KoralahalliChannabasappa@amd.com>
-
-[ Upstream commit 84973331442a57bac31b40eaef6f264496c6f3fd ]
-
-Rename the protocol error struct from struct cper_sec_prot_err to
-struct cxl_cper_sec_prot_err and cper_print_prot_err() to
-cxl_cper_print_prot_err() to maintain naming consistency. No
-functional changes.
-
-Signed-off-by: Smita Koralahalli <Smita.KoralahalliChannabasappa@amd.com>
-Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
-Reviewed-by: Ira Weiny <ira.weiny@intel.com>
-Reviewed-by: Dave Jiang <dave.jiang@intel.com>
-Reviewed-by: Fan Ni <fan.ni@samsung.com>
-Reviewed-by: Gregory Price <gourry@gourry.net>
-Reviewed-by: Dan Williams <dan.j.williams@intel.com>
-Link: https://patch.msgid.link/20250123084421.127697-2-Smita.KoralahalliChannabasappa@amd.com
-Signed-off-by: Dave Jiang <dave.jiang@intel.com>
-Stable-dep-of: b584bfbd7ec4 ("ACPI: APEI: GHES: Disable KASAN instrumentation when compile testing with clang < 18")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/firmware/efi/cper.c | 4 ++--
- drivers/firmware/efi/cper_cxl.c | 3 ++-
- drivers/firmware/efi/cper_cxl.h | 5 +++--
- 3 files changed, 7 insertions(+), 5 deletions(-)
-
-diff --git a/drivers/firmware/efi/cper.c b/drivers/firmware/efi/cper.c
-index 3587295cd0206..e0adbd6df9b53 100644
---- a/drivers/firmware/efi/cper.c
-+++ b/drivers/firmware/efi/cper.c
-@@ -690,11 +690,11 @@ cper_estatus_print_section(const char *pfx, struct acpi_hest_generic_data *gdata
- else
- goto err_section_too_small;
- } else if (guid_equal(sec_type, &CPER_SEC_CXL_PROT_ERR)) {
-- struct cper_sec_prot_err *prot_err = acpi_hest_get_payload(gdata);
-+ struct cxl_cper_sec_prot_err *prot_err = acpi_hest_get_payload(gdata);
-
- printk("%ssection_type: CXL Protocol Error\n", newpfx);
- if (gdata->error_data_length >= sizeof(*prot_err))
-- cper_print_prot_err(newpfx, prot_err);
-+ cxl_cper_print_prot_err(newpfx, prot_err);
- else
- goto err_section_too_small;
- } else {
-diff --git a/drivers/firmware/efi/cper_cxl.c b/drivers/firmware/efi/cper_cxl.c
-index a55771b99a97a..cbaabcb7382d9 100644
---- a/drivers/firmware/efi/cper_cxl.c
-+++ b/drivers/firmware/efi/cper_cxl.c
-@@ -55,7 +55,8 @@ enum {
- USP, /* CXL Upstream Switch Port */
- };
-
--void cper_print_prot_err(const char *pfx, const struct cper_sec_prot_err *prot_err)
-+void cxl_cper_print_prot_err(const char *pfx,
-+ const struct cxl_cper_sec_prot_err *prot_err)
- {
- if (prot_err->valid_bits & PROT_ERR_VALID_AGENT_TYPE)
- pr_info("%s agent_type: %d, %s\n", pfx, prot_err->agent_type,
-diff --git a/drivers/firmware/efi/cper_cxl.h b/drivers/firmware/efi/cper_cxl.h
-index 86bfcf7909eca..0e3ab0ba17c36 100644
---- a/drivers/firmware/efi/cper_cxl.h
-+++ b/drivers/firmware/efi/cper_cxl.h
-@@ -18,7 +18,7 @@
- #pragma pack(1)
-
- /* Compute Express Link Protocol Error Section, UEFI v2.10 sec N.2.13 */
--struct cper_sec_prot_err {
-+struct cxl_cper_sec_prot_err {
- u64 valid_bits;
- u8 agent_type;
- u8 reserved[7];
-@@ -61,6 +61,7 @@ struct cper_sec_prot_err {
-
- #pragma pack()
-
--void cper_print_prot_err(const char *pfx, const struct cper_sec_prot_err *prot_err);
-+void cxl_cper_print_prot_err(const char *pfx,
-+ const struct cxl_cper_sec_prot_err *prot_err);
-
- #endif //__CPER_CXL_
---
-2.51.0
-
ima-kexec-define-functions-to-copy-ima-log-at-soft-b.patch
ima-verify-the-previous-kernel-s-ima-buffer-lies-in-.patch
of-kexec-refactor-ima_get_kexec_buffer-to-use-ima_va.patch
-efi-cper-cxl-prefix-protocol-error-struct-and-functi.patch
-efi-cper-cxl-make-definitions-and-structures-global.patch
-acpi-ghes-cper-recognize-and-cache-cxl-protocol-erro.patch
-acpi-apei-ghes-add-helper-for-cper-cxl-protocol-erro.patch
-acpi-apei-ghes-disable-kasan-instrumentation-when-co.patch
drm-exynos-vidi-fix-to-avoid-directly-dereferencing-.patch
drm-exynos-vidi-remove-redundant-error-handling-in-v.patch
drm-exynos-vidi-use-ctx-lock-to-protect-struct-vidi_.patch