Ira Weiny wrote: > If the firmware has configured CXL event support to be firmware first > the OS can process those events through CPER records. Matching memory > devices to the CPER records can be done via the serial number which is > part of the CPER record header. > > Detect firmware first, register a notifier callback for each memdev, and > trace events when they match a device registered. > > Signed-off-by: Ira Weiny <ira.weiny@xxxxxxxxx> > [..] The changes requested in patch2 cover all of the comments I currently have on this patch, just one more cleanup below: > +#define CXL_EVENT_HDR_FLAGS_REC_SEVERITY GENMASK(1, 0) > +int cxl_cper_event_call(struct notifier_block *nb, unsigned long action, void *data) > +{ > + struct cxl_cper_notifier_data *nd = data; > + struct cxl_event_record_raw record = (struct cxl_event_record_raw) { > + .hdr.id = UUID_INIT(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), > + }; Just do: struct cxl_event_record_raw record = { 0 }; ...and the compiler will take care of the rest as initializing any field automatically initializes everything else to zero.