Re: [PATCH v2 01/11] iio: adc: ad_sigma_delta: don't overallocate scan buffer
From: Jonathan Cameron
Date: Sat Jun 28 2025 - 11:04:43 EST
On Sat, 28 Jun 2025 15:55:21 +0100
Jonathan Cameron <jic23@xxxxxxxxxx> wrote:
> On Fri, 27 Jun 2025 18:39:57 -0500
> David Lechner <dlechner@xxxxxxxxxxxx> wrote:
>
> > Fix overallocating the size of the scan buffer by converting bits to
> > bytes. The size is meant to be in bytes, so scanbits needs to be
> > divided by 8.
> >
> > Signed-off-by: David Lechner <dlechner@xxxxxxxxxxxx>
> > ---
> > drivers/iio/adc/ad_sigma_delta.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/iio/adc/ad_sigma_delta.c b/drivers/iio/adc/ad_sigma_delta.c
> > index 4c5f8d29a559fea7226b84141bcb148fb801f62c..6b3ef7ef403e00804abeb81025ed293b188e492b 100644
> > --- a/drivers/iio/adc/ad_sigma_delta.c
> > +++ b/drivers/iio/adc/ad_sigma_delta.c
> > @@ -489,7 +489,7 @@ static int ad_sd_buffer_postenable(struct iio_dev *indio_dev)
> > return ret;
> > }
> >
> > - samples_buf_size = ALIGN(slot * indio_dev->channels[0].scan_type.storagebits, 8);
> > + samples_buf_size = ALIGN(slot * indio_dev->channels[0].scan_type.storagebits / 8, 8);
>
> Seems like a good place for BITS_TO_BYTES() from bitops.h. Given we have another 8
> kicking around in the same code line it might be a tiny bit confusing as / 8
>
> If everything else is good I'll tweak this whilst applying (and add the include if needed).
Found it in patch 4. No problem doing it there. 'Maybe' a hint in the description would
have been a nice to have, but not particularly important.
>
> > samples_buf_size += sizeof(int64_t);
> > samples_buf = devm_krealloc(&sigma_delta->spi->dev, sigma_delta->samples_buf,
> > samples_buf_size, GFP_KERNEL);
> >
>