]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
iio: adc: ad_sigma_delta: don't overallocate scan buffer
authorDavid Lechner <dlechner@baylibre.com>
Tue, 1 Jul 2025 21:37:49 +0000 (16:37 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 20 Aug 2025 16:40:59 +0000 (18:40 +0200)
[ Upstream commit 5a2f15c5a8e017d0951e6dc62aa7b5b634f56881 ]

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@baylibre.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Nuno Sá <nuno.sa@analog.com>
Link: https://patch.msgid.link/20250701-iio-adc-ad7173-add-spi-offload-support-v3-1-42abb83e3dac@baylibre.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/iio/adc/ad_sigma_delta.c

index 4c5f8d29a559fea7226b84141bcb148fb801f62c..6b3ef7ef403e00804abeb81025ed293b188e492b 100644 (file)
@@ -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);
        samples_buf_size += sizeof(int64_t);
        samples_buf = devm_krealloc(&sigma_delta->spi->dev, sigma_delta->samples_buf,
                                    samples_buf_size, GFP_KERNEL);