On Sun, 7 Jun 2020 19:05:15 +0300 Andy Shevchenko <andy.shevchenko@xxxxxxxxx> wrote: > On Sun, Jun 7, 2020 at 6:57 PM Jonathan Cameron <jic23@xxxxxxxxxx> wrote: > > > > From: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx> > > > > iio_push_to_buffers_with_timestamp assumes 8 byte alignment which > > is not guaranteed by an array of smaller elements. > > > > Note that whilst in this particular case the alignment forcing > > of the ts element is not strictly necessary it acts as good > > documentation. > > ... > > > + struct { > > + __be16 chan[4]; > > + s64 ts __aligned(8); > > + } hw_values; > > I'm not sure what __aligned can do better here? It's naturally will be > 8 alignment (struct itself due to s64 followed by 4*__be16). > Mainly I put it in all cases even when not needed to ensure that copy and paste versions keep the alignment statement. Here I agree it does nothing but if someone adds another channel to a driver they might miss that they also need to then add the __aligned(8) for the timestamp. Jonathan