]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ACPI: extlog: Trace CPER Non-standard Section Body
authorFabio M. De Francesco <fabio.m.de.francesco@linux.intel.com>
Wed, 14 Jan 2026 10:14:21 +0000 (11:14 +0100)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 14 Jan 2026 16:09:34 +0000 (17:09 +0100)
ghes_do_proc() has a catch-all for unknown or unhandled CPER formats
(UEFI v2.11 Appendix N 2.3), extlog_print() does not. This gap was
noticed by a RAS test that injected CXL protocol errors which were
notified to extlog_print() via the IOMCA (I/O Machine Check
Architecture) mechanism. Bring parity to the extlog_print() path by
including a similar log_non_standard_event().

Reviewed-by: Dan Williams <dan.j.williams@intel.com>
Reviewed-by: Dave Jiang <dave.jiang@intel.com>
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
Reviewed-by: Qiuxu Zhuo <qiuxu.zhuo@intel.com>
Reviewed-by: Shuai Xue <xueshuai@linux.alibaba.com>
Signed-off-by: Fabio M. De Francesco <fabio.m.de.francesco@linux.intel.com>
Link: https://patch.msgid.link/20260114101543.85926-2-fabio.m.de.francesco@linux.intel.com
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/acpi_extlog.c

index f6b9562779de049866c06aa2d00255e1a02a4c9c..47d11cb5c912039dbc764d66a2c534897ded6ca0 100644 (file)
@@ -183,6 +183,12 @@ static int extlog_print(struct notifier_block *nb, unsigned long val,
                        if (gdata->error_data_length >= sizeof(*mem))
                                trace_extlog_mem_event(mem, err_seq, fru_id, fru_text,
                                                       (u8)gdata->error_severity);
+               } else {
+                       void *err = acpi_hest_get_payload(gdata);
+
+                       log_non_standard_event(sec_type, fru_id, fru_text,
+                                              gdata->error_severity, err,
+                                              gdata->error_data_length);
                }
        }