On Tue, 29 Apr 2025 19:21:06 +0200 "Fabio M. De Francesco" <fabio.m.de.france...@linux.intel.com> wrote:
> ghes_do_proc() has a catch-all for unknown or unhandled CPER formats > (UEFI v2.10 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(). > > Cc: Dan Williams <dan.j.willi...@intel.com> > Reviewed-by: Dan Williams <dan.j.willi...@intel.com> > Signed-off-by: Fabio M. De Francesco <fabio.m.de.france...@linux.intel.com> Makes sense to me. Reviewed-by: Jonathan Cameron <jonathan.came...@huawei.com> > --- > drivers/acpi/acpi_extlog.c | 6 ++++++ > drivers/ras/ras.c | 1 + > 2 files changed, 7 insertions(+) > > diff --git a/drivers/acpi/acpi_extlog.c b/drivers/acpi/acpi_extlog.c > index f7fb7205028d..caca6ccd6e99 100644 > --- a/drivers/acpi/acpi_extlog.c > +++ b/drivers/acpi/acpi_extlog.c > @@ -182,6 +182,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); > } > } > > diff --git a/drivers/ras/ras.c b/drivers/ras/ras.c > index a6e4792a1b2e..ac0e132ccc3e 100644 > --- a/drivers/ras/ras.c > +++ b/drivers/ras/ras.c > @@ -51,6 +51,7 @@ void log_non_standard_event(const guid_t *sec_type, const > guid_t *fru_id, > { > trace_non_standard_event(sec_type, fru_id, fru_text, sev, err, len); > } > +EXPORT_SYMBOL_GPL(log_non_standard_event); > > void log_arm_hw_error(struct cper_sec_proc_arm *err) > {