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)
>  {


Reply via email to