Re: [PATCH v3 12/13] gpiolib: add new ioctl() for monitoring changes in line info

From: Andy Shevchenko
Date: Fri Dec 20 2019 - 07:15:47 EST


On Fri, Dec 20, 2019 at 12:25:59PM +0100, Bartosz Golaszewski wrote:
> czw., 19 gru 2019 o 19:17 Andy Shevchenko <andy.shevchenko@xxxxxxxxx>
> napisaÅ(a):
> > On Thu, Dec 19, 2019 at 7:17 PM Bartosz Golaszewski <brgl@xxxxxxxx> wrote:

...

> > > +/**
> > > + * struct gpioline_info_changed - Information about a change in status
> > > + * of a GPIO line
> > > + * @info: updated line information
> > > + * @timestamp: estimate of time of status change occurrence, in nanoseconds
> > > + * and GPIOLINE_CHANGED_CONFIG
> > > + * @event_type: one of GPIOLINE_CHANGED_REQUESTED, GPIOLINE_CHANGED_RELEASED
> > > + */
> > > +struct gpioline_info_changed {
> >
> > > + struct gpioline_info info;
> >
> > Is this guaranteed to be always 8 byte aligned?
> > I'm expecting to see some comments there and / or here about it.
> >
>
> struct gpioline_info alone is 32-bit aligned but its size is 72 bytes
> which works for 64-bit alignment. This new structure's biggest element
> in 64-bit, so it's 64-bit aligned on 64-bit arch. We have 72 bytes of
> gpioline_info, 8 bytes of timestamp, 32 bytes of event type and 5 * 32
> bytes of padding. Should be fine, but I'll add comments to the header.

Yes, what I meant is to add comment at least to struct gpioline_info definition
that if somebody would like to change it there (which also might be a
problematic here, if there is no versioning scheme / length member).

> > > + __u64 timestamp;
> > > + __u32 event_type;
> > > + __u32 padding[5]; /* for future use */
> > > +};

Offtopic a bit, had you had a chance to look at Buildroot and our scripts
I shared?

--
With Best Regards,
Andy Shevchenko