2024-02-28 20:58:04

by David Lechner

[permalink] [raw]
Subject: Re: [PATCH v4 4/8] iio: core: Calculate alloc_size only once in iio_device_alloc()

On Wed, Feb 28, 2024 at 2:49 PM Andy Shevchenko
<[email protected]> wrote:
>
> No need to rewrite the value, instead use 'else' branch.
> This will also help further refactoring the code later on.
>
> Signed-off-by: Andy Shevchenko <[email protected]>
> ---
> drivers/iio/industrialio-core.c | 9 ++++-----
> 1 file changed, 4 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c
> index bd305fa87093..1986b3386307 100644
> --- a/drivers/iio/industrialio-core.c
> +++ b/drivers/iio/industrialio-core.c
> @@ -1643,11 +1643,10 @@ struct iio_dev *iio_device_alloc(struct device *parent, int sizeof_priv)
> struct iio_dev *indio_dev;
> size_t alloc_size;
>
> - alloc_size = sizeof(struct iio_dev_opaque);
> - if (sizeof_priv) {
> - alloc_size = ALIGN(alloc_size, IIO_DMA_MINALIGN);
> - alloc_size += sizeof_priv;
> - }
> + if (sizeof_priv)
> + alloc_size = ALIGN(alloc_size, IIO_DMA_MINALIGN) + sizeof_priv;

Isn't this using alloc_size before it is assigned? Perhaps you meant this:

alloc_size = ALIGN(sizeof(struct iio_dev_opaque),
IIO_DMA_MINALIGN) + sizeof_priv;


> + else
> + alloc_size = sizeof(struct iio_dev_opaque);
>
> iio_dev_opaque = kzalloc(alloc_size, GFP_KERNEL);
> if (!iio_dev_opaque)


2024-02-28 21:09:30

by Andy Shevchenko

[permalink] [raw]
Subject: Re: [PATCH v4 4/8] iio: core: Calculate alloc_size only once in iio_device_alloc()

On Wed, Feb 28, 2024 at 02:57:36PM -0600, David Lechner wrote:
> On Wed, Feb 28, 2024 at 2:49 PM Andy Shevchenko
> <[email protected]> wrote:

..

> > - alloc_size = sizeof(struct iio_dev_opaque);
> > - if (sizeof_priv) {
> > - alloc_size = ALIGN(alloc_size, IIO_DMA_MINALIGN);
> > - alloc_size += sizeof_priv;
> > - }
> > + if (sizeof_priv)
> > + alloc_size = ALIGN(alloc_size, IIO_DMA_MINALIGN) + sizeof_priv;
>
> Isn't this using alloc_size before it is assigned? Perhaps you meant this:
>
> alloc_size = ALIGN(sizeof(struct iio_dev_opaque),
> IIO_DMA_MINALIGN) + sizeof_priv;

However the end result of the series is correct, this is a good catch!
Thanks!

> > + else
> > + alloc_size = sizeof(struct iio_dev_opaque);

--
With Best Regards,
Andy Shevchenko