On Thu, 23 Oct 2025 14:25:41 +0200 "Fabio M. De Francesco" <[email protected]> wrote:
> When Firmware First is enabled, BIOS handles errors first and then it makes > them available to the kernel via the Common Platform Error Record (CPER) > sections (UEFI 2.10 Appendix N). Linux parses the CPER sections via one of > two similar paths, either ELOG or GHES. The errors managed by ELOG are > signaled to the BIOS by the I/O Machine Check Architecture (I/O MCA). > > Currently, ELOG and GHES show some inconsistencies in how they report to > userspace via trace events. > > Therefore, make the two mentioned paths act similarly by tracing the CPER > CXL Protocol Error Section (UEFI v2.10, Appendix N.2.13). > > Cc: Dan Williams <[email protected]> > Reviewed-by: Kuppuswamy Sathyanarayanan > <[email protected]> > Signed-off-by: Fabio M. De Francesco <[email protected]> Just one small question. With that addressed, Reviewed-by: Jonathan Cameron <[email protected]> > diff --git a/drivers/cxl/core/ras.c b/drivers/cxl/core/ras.c > index 2731ba3a0799..3f527b0c6509 100644 > --- a/drivers/cxl/core/ras.c > +++ b/drivers/cxl/core/ras.c > @@ -105,6 +105,12 @@ static void cxl_cper_handle_prot_err(struct > cxl_cper_prot_err_work_data *data) > cxl_cper_trace_uncorr_prot_err(cxlmd, data->ras_cap); > } > > +void cxl_cper_ras_handle_prot_err(struct cxl_cper_prot_err_work_data *wd) Why do we need this wrapper? The name is a bit more general, so if you do need it, then why not instead just rename cxl_cper_handle_prot_err() > +{ > + cxl_cper_handle_prot_err(wd); > +} > +EXPORT_SYMBOL_GPL(cxl_cper_ras_handle_prot_err); > + > static void cxl_cper_prot_err_work_fn(struct work_struct *work) > { > struct cxl_cper_prot_err_work_data wd; > diff --git a/include/cxl/event.h b/include/cxl/event.h > index 94081aec597a..a37eef112411 100644 > --- a/include/cxl/event.h > +++ b/include/cxl/event.h > @@ -340,4 +340,6 @@ cxl_cper_setup_prot_err_work_data(struct > cxl_cper_prot_err_work_data *wd, > } > #endif > > +void cxl_cper_ras_handle_prot_err(struct cxl_cper_prot_err_work_data *wd); > + > #endif /* _LINUX_CXL_EVENT_H */
