Dan Williams wrote: > 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. Not quite sure what I was thinking. This works better but I think I can avoid needing this initialization all together by reworking the structures. For now I have made the change and I'll see how it falls out. Thanks, Ira