lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Wed, 1 Nov 2023 17:35:59 +0000
From:   Jonathan Cameron <Jonathan.Cameron@...wei.com>
To:     Ira Weiny <ira.weiny@...el.com>
CC:     Dan Williams <dan.j.williams@...el.com>,
        Smita Koralahalli <Smita.KoralahalliChannabasappa@....com>,
        Yazen Ghannam <yazen.ghannam@....com>,
        Davidlohr Bueso <dave@...olabs.net>,
        Dave Jiang <dave.jiang@...el.com>,
        Alison Schofield <alison.schofield@...el.com>,
        Vishal Verma <vishal.l.verma@...el.com>,
        Ard Biesheuvel <ardb@...nel.org>, <linux-efi@...r.kernel.org>,
        <linux-kernel@...r.kernel.org>, <linux-cxl@...r.kernel.org>
Subject: Re: [PATCH RFC v2 3/3] cxl/memdev: Register for and process CPER
 events

On Tue, 31 Oct 2023 10:13:40 -0700
Ira Weiny <ira.weiny@...el.com> wrote:

> 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@...el.com>
> > >   
> > [..]
> > 
> > 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 };

FWIW (I'm in a pedantic mood), unless you care about that specific 0
= {};
equally valid.
c99

"If there are fewer initializers in a brace-enclosed list than there
are elements or members of an aggregate ...  the remainder of the
aggregate shall be initiali\ed implicitly the same as objects
that have static storage duration."

i.e. to 0.

Nothing says that fewer != 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
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ