RE: [PATCH v2 7/8] iio: core: simplify alloc alignment code

From: Sa, Nuno
Date: Fri May 15 2020 - 03:13:08 EST


Hey Alex,

Just a small question...

> From: linux-iio-owner@xxxxxxxxxxxxxxx <linux-iio-owner@xxxxxxxxxxxxxxx>
> On Behalf Of Alexandru Ardelean
> Sent: Donnerstag, 14. Mai 2020 15:17
> To: linux-iio@xxxxxxxxxxxxxxx; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; linux-
> stm32@xxxxxxxxxxxxxxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
> Cc: ludovic.desroches@xxxxxxxxxxxxx; eugen.hristev@xxxxxxxxxxxxx;
> jic23@xxxxxxxxxx; nicolas.ferre@xxxxxxxxxxxxx;
> alexandre.belloni@xxxxxxxxxxx; alexandre.torgue@xxxxxx;
> mcoquelin.stm32@xxxxxxxxx; ak@xxxxxxxxxxxxx; Ardelean, Alexandru
> <alexandru.Ardelean@xxxxxxxxxx>
> Subject: [PATCH v2 7/8] iio: core: simplify alloc alignment code
>
> There was a recent discussion about this code:
> https://urldefense.com/v3/__https://lore.kernel.org/linux-
> iio/20200322165317.0b1f0674@archlinux/__;!!A3Ni8CS0y2Y!pgdUSayJCfxMiE
> w8Fpv0LkEZurCSkX0sEcLnXeDSCLmhpu1xont6-vBQj3ZbCw$
>
> This looks like a good time to rework this, since any issues about it
> should pop-up under testing, because the iio_dev is having a bit of an
> overhaul and stuff being moved to iio_dev_priv.
>
> Signed-off-by: Alexandru Ardelean <alexandru.ardelean@xxxxxxxxxx>
> ---
> drivers/iio/industrialio-core.c | 10 +++-------
> 1 file changed, 3 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c
> index a1b29e0f8fd6..7671d36efae7 100644
> --- a/drivers/iio/industrialio-core.c
> +++ b/drivers/iio/industrialio-core.c
> @@ -1514,13 +1514,9 @@ struct iio_dev *iio_device_alloc(int sizeof_priv)
> struct iio_dev *dev;
> size_t alloc_size;
>
> - alloc_size = sizeof(struct iio_dev_opaque);
> - if (sizeof_priv) {
> - alloc_size = ALIGN(alloc_size, IIO_ALIGN);
> - alloc_size += sizeof_priv;
> - }
> - /* ensure 32-byte alignment of whole construct ? */
> - alloc_size += IIO_ALIGN - 1;
> + alloc_size = ALIGN(sizeof(struct iio_dev_opaque), IIO_ALIGN);
> + if (sizeof_priv)
> + alloc_size += ALIGN(sizeof_priv, IIO_ALIGN);

Do we actually need to do the `ALIGN` again? It seems to me that `alloc_size += sizeof_priv`
would be enough or am I missing something obvious?

- Nuno Sá