From: Sasha Levin Date: Mon, 9 Mar 2026 22:15:52 +0000 (-0400) Subject: Drop backport of b584bfbd7ec4 and its dependencies from queue-6.12 X-Git-Tag: v6.19.7~6^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9127a2898c579a756f7ff73a72180e8c858efe4c;p=thirdparty%2Fkernel%2Fstable-queue.git Drop backport of b584bfbd7ec4 and its dependencies from queue-6.12 Signed-off-by: Sasha Levin --- diff --git a/queue-6.12/acpi-apei-ghes-add-helper-for-cper-cxl-protocol-erro.patch b/queue-6.12/acpi-apei-ghes-add-helper-for-cper-cxl-protocol-erro.patch deleted file mode 100644 index 7fc8d77c58..0000000000 --- a/queue-6.12/acpi-apei-ghes-add-helper-for-cper-cxl-protocol-erro.patch +++ /dev/null @@ -1,136 +0,0 @@ -From 42f84f49c153d099f7d63bd04b3cd655fc850985 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -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 - -[ 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 -Reviewed-by: Hanjun Guo -Reviewed-by: Jonathan Cameron -Signed-off-by: Fabio M. De Francesco -[ rjw: Subject tweak ] -Link: https://patch.msgid.link/20260114101543.85926-4-fabio.m.de.francesco@linux.intel.com -Signed-off-by: Rafael J. Wysocki -Stable-dep-of: b584bfbd7ec4 ("ACPI: APEI: GHES: Disable KASAN instrumentation when compile testing with clang < 18") -Signed-off-by: Sasha Levin ---- - 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 -+#include -+ -+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 - diff --git a/queue-6.12/acpi-apei-ghes-disable-kasan-instrumentation-when-co.patch b/queue-6.12/acpi-apei-ghes-disable-kasan-instrumentation-when-co.patch deleted file mode 100644 index fb9c37002b..0000000000 --- a/queue-6.12/acpi-apei-ghes-disable-kasan-instrumentation-when-co.patch +++ /dev/null @@ -1,57 +0,0 @@ -From ccd3cab8095d5c53eaf8a6598ff339ffaad6a696 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -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 - -[ 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 -Cc: All applicable -Link: https://patch.msgid.link/20260114-ghes-avoid-wflt-clang-older-than-18-v1-1-9c8248bfe4f4@kernel.org -Signed-off-by: Rafael J. Wysocki -Signed-off-by: Sasha Levin ---- - 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 - diff --git a/queue-6.12/acpi-ghes-cper-recognize-and-cache-cxl-protocol-erro.patch b/queue-6.12/acpi-ghes-cper-recognize-and-cache-cxl-protocol-erro.patch deleted file mode 100644 index 64ec6955ef..0000000000 --- a/queue-6.12/acpi-ghes-cper-recognize-and-cache-cxl-protocol-erro.patch +++ /dev/null @@ -1,127 +0,0 @@ -From ccc5d9b1a49cf9f8f592ec6c954bd2d49a4a1ab5 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Thu, 23 Jan 2025 08:44:19 +0000 -Subject: acpi/ghes, cper: Recognize and cache CXL Protocol errors - -From: Smita Koralahalli - -[ 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 -Reviewed-by: Jonathan Cameron -Reviewed-by: Dave Jiang -Reviewed-by: Ira Weiny -Reviewed-by: Tony Luck -Reviewed-by: Gregory Price -Reviewed-by: Dan Williams -Link: https://patch.msgid.link/20250123084421.127697-5-Smita.KoralahalliChannabasappa@amd.com -Signed-off-by: Dave Jiang -Stable-dep-of: b584bfbd7ec4 ("ACPI: APEI: GHES: Disable KASAN instrumentation when compile testing with clang < 18") -Signed-off-by: Sasha Levin ---- - 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 - diff --git a/queue-6.12/efi-cper-cxl-make-definitions-and-structures-global.patch b/queue-6.12/efi-cper-cxl-make-definitions-and-structures-global.patch deleted file mode 100644 index b64ab60360..0000000000 --- a/queue-6.12/efi-cper-cxl-make-definitions-and-structures-global.patch +++ /dev/null @@ -1,271 +0,0 @@ -From 4b609d4da1841e3a1af4a4576a6244e8f8830402 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Thu, 23 Jan 2025 08:44:17 +0000 -Subject: efi/cper, cxl: Make definitions and structures global - -From: Smita Koralahalli - -[ 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 -Reviewed-by: Jonathan Cameron -Reviewed-by: Ira Weiny -Reviewed-by: Dave Jiang -Reviewed-by: Fan Ni -Reviewed-by: Gregory Price -Reviewed-by: Dan Williams -Link: https://patch.msgid.link/20250123084421.127697-3-Smita.KoralahalliChannabasappa@amd.com -Signed-off-by: Dave Jiang -Stable-dep-of: b584bfbd7ec4 ("ACPI: APEI: GHES: Disable KASAN instrumentation when compile testing with clang < 18") -Signed-off-by: Sasha Levin ---- - 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 - #include - #include -+#include - #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 -+#include - #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 - diff --git a/queue-6.12/efi-cper-cxl-prefix-protocol-error-struct-and-functi.patch b/queue-6.12/efi-cper-cxl-prefix-protocol-error-struct-and-functi.patch deleted file mode 100644 index 6853f98863..0000000000 --- a/queue-6.12/efi-cper-cxl-prefix-protocol-error-struct-and-functi.patch +++ /dev/null @@ -1,89 +0,0 @@ -From 359440e90906fcc3deb97c427092d424594cf730 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -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 - -[ 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 -Reviewed-by: Jonathan Cameron -Reviewed-by: Ira Weiny -Reviewed-by: Dave Jiang -Reviewed-by: Fan Ni -Reviewed-by: Gregory Price -Reviewed-by: Dan Williams -Link: https://patch.msgid.link/20250123084421.127697-2-Smita.KoralahalliChannabasappa@amd.com -Signed-off-by: Dave Jiang -Stable-dep-of: b584bfbd7ec4 ("ACPI: APEI: GHES: Disable KASAN instrumentation when compile testing with clang < 18") -Signed-off-by: Sasha Levin ---- - 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 - diff --git a/queue-6.12/series b/queue-6.12/series index f018ae9277..cb2eff2d1e 100644 --- a/queue-6.12/series +++ b/queue-6.12/series @@ -94,11 +94,6 @@ kexec-define-functions-to-map-and-unmap-segments.patch 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