linux/drivers/iio/accel
Francesco Lavra a8e88edfd6 iio: accel: adxl380: Avoid reading more entries than present in FIFO
[ Upstream commit c1b1401522 ]

The interrupt handler reads FIFO entries in batches of N samples, where N
is the number of scan elements that have been enabled. However, the sensor
fills the FIFO one sample at a time, even when more than one channel is
enabled. Therefore,the number of entries reported by the FIFO status
registers may not be a multiple of N; if this number is not a multiple, the
number of entries read from the FIFO may exceed the number of entries
actually present.

To fix the above issue, round down the number of FIFO entries read from the
status registers so that it is always a multiple of N.

Fixes: df36de1367 ("iio: accel: add ADXL380 driver")
Signed-off-by: Francesco Lavra <flavra@baylibre.com>
Cc: <Stable@vger.kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2026-03-04 07:21:13 -05:00
..
adis16201.c iio: adis16201: Correct inclinometer channel resolution 2025-04-21 14:58:31 +01:00
adis16209.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
adxl313.h iio: accel: adxl313: implement power-save on inactivity 2025-07-13 15:36:27 +01:00
adxl313_core.c iio: accel: adxl313: add AC coupled activity/inactivity events 2025-07-13 15:36:27 +01:00
adxl313_i2c.c iio: accel: adxl313: make use of regmap cache 2025-07-13 15:36:26 +01:00
adxl313_spi.c iio: accel: adxl313: make use of regmap cache 2025-07-13 15:36:26 +01:00
adxl345.h iio: accel: adxl345: simplify measure enable 2025-06-26 19:32:55 +01:00
adxl345_core.c iio: accel: adxl345: extend inactivity time for less than 1s 2025-08-16 11:57:07 +01:00
adxl345_i2c.c iio: accel: adxl345: use regmap cache for INT mapping 2025-04-22 19:09:51 +01:00
adxl345_spi.c iio: accel: adxl345: use regmap cache for INT mapping 2025-04-22 19:09:51 +01:00
adxl355.h drivers: iio: accel: Add support for ADXL359 device 2022-11-23 19:44:04 +00:00
adxl355_core.c iio: accel: fix ADXL355 startup race condition 2025-10-18 14:07:16 +01:00
adxl355_i2c.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
adxl355_spi.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
adxl367.c iio: accel: adxl367: fix setting odr for activity time update 2025-04-07 19:32:49 +01:00
adxl367.h iio: accel: add ADXL367 driver 2022-02-21 19:33:06 +00:00
adxl367_i2c.c iio: normalize array sentinel style 2025-04-22 19:10:04 +01:00
adxl367_spi.c iio: normalize array sentinel style 2025-04-22 19:10:04 +01:00
adxl372.c iio: accel: adxl372: use = { } instead of memset() 2025-06-26 19:32:55 +01:00
adxl372.h iio: adxl372: Add support for I2C communication 2018-09-08 15:54:38 +01:00
adxl372_i2c.c iio: normalize array sentinel style 2025-04-22 19:10:04 +01:00
adxl372_spi.c iio: normalize array sentinel style 2025-04-22 19:10:04 +01:00
adxl380.c iio: accel: adxl380: Avoid reading more entries than present in FIFO 2026-03-04 07:21:13 -05:00
adxl380.h iio: accel: add ADXL380 driver 2024-08-03 10:13:36 +01:00
adxl380_i2c.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
adxl380_spi.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
bma180.c iio: Use IRQF_NO_THREAD 2026-03-04 07:20:37 -05:00
bma220_spi.c iio: accel: Drop unnecessary -ENOMEM messages 2025-08-25 12:28:10 +01:00
bma400.h iio: accel: bma400: Use devm_regulator_bulk_get_enable() 2022-12-28 17:19:45 +00:00
bma400_core.c iio: accel: Use iio_push_to_buffers_with_ts() to provide length for runtime checks. 2025-05-21 14:20:26 +01:00
bma400_i2c.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
bma400_spi.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
bmc150-accel-core.c iio: accel: bmc150: Fix irq assumption regression 2025-11-11 20:22:23 +00:00
bmc150-accel-i2c.c iio: normalize array sentinel style 2025-04-22 19:10:04 +01:00
bmc150-accel-spi.c iio: normalize array sentinel style 2025-04-22 19:10:04 +01:00
bmc150-accel.h iio: accel: bmc150: Fix irq assumption regression 2025-11-11 20:22:23 +00:00
bmi088-accel-core.c iio: accel: Remove redundant pm_runtime_mark_last_busy() calls 2025-08-25 15:56:12 +01:00
bmi088-accel-i2c.c iio: normalize array sentinel style 2025-04-22 19:10:04 +01:00
bmi088-accel-spi.c iio: normalize array sentinel style 2025-04-22 19:10:04 +01:00
bmi088-accel.h iio: accel: bmi088: Add support for bmi090l accel 2022-06-11 14:35:28 +01:00
cros_ec_accel_legacy.c iio: accel: cros_ec_accel_legacy: make use of iio_get_masklength() 2024-07-29 20:31:08 +01:00
da280.c iio: normalize array sentinel style 2025-04-22 19:10:04 +01:00
da311.c iio: normalize array sentinel style 2025-04-22 19:10:04 +01:00
dmard06.c iio: accel: Drop unnecessary -ENOMEM messages 2025-08-25 12:28:10 +01:00
dmard09.c iio: accel: Drop unnecessary -ENOMEM messages 2025-08-25 12:28:10 +01:00
dmard10.c iio: accel: Drop unnecessary -ENOMEM messages 2025-08-25 12:28:10 +01:00
fxls8962af-core.c iio: accel: Remove redundant pm_runtime_mark_last_busy() calls 2025-08-25 15:56:12 +01:00
fxls8962af-i2c.c iio: normalize array sentinel style 2025-04-22 19:10:04 +01:00
fxls8962af-spi.c iio: normalize array sentinel style 2025-04-22 19:10:04 +01:00
fxls8962af.h iio: accel: fxls8962af: add fxls8967af support 2024-12-07 17:11:01 +00:00
hid-sensor-accel-3d.c iio: accel: hid: Use iio_push_to_buffers_with_ts() to provide length for runtime checks. 2025-05-21 14:20:26 +01:00
Kconfig iio: accel: kx022a: add missing select IIO_(TRIGGERED_)BUFFER in Kconfig 2024-10-06 16:27:25 +01:00
kionix-kx022a-i2c.c iio: accel: kx022a: Support KX134-1211 2024-12-07 17:52:39 +00:00
kionix-kx022a-spi.c iio: accel: kx022a: Support KX134-1211 2024-12-07 17:52:39 +00:00
kionix-kx022a.c iio: accel: kionix-kx022a: Apply approximate iwyu principles to includes 2025-07-14 19:20:53 +01:00
kionix-kx022a.h iio: kx022a: document new chip_info structure members 2024-12-08 18:26:31 +00:00
kxcjk-1013.c iio: accel: Remove redundant pm_runtime_mark_last_busy() calls 2025-08-25 15:56:12 +01:00
kxsd9-i2c.c iio: normalize array sentinel style 2025-04-22 19:10:04 +01:00
kxsd9-spi.c iio: normalize array sentinel style 2025-04-22 19:10:04 +01:00
kxsd9.c iio: accel: Remove redundant pm_runtime_mark_last_busy() calls 2025-08-25 15:56:12 +01:00
kxsd9.h iio: accel: kxsd9: Make kxsd9_common_remove() return void 2021-10-19 08:30:45 +01:00
Makefile iio: accel: add ADXL380 driver 2024-08-03 10:13:36 +01:00
mc3230.c iio: accel: Drop unnecessary -ENOMEM messages 2025-08-25 12:28:10 +01:00
mma7455.h iio: accel: mma7455: Make mma7455_core_remove() return void 2021-10-19 08:30:45 +01:00
mma7455_core.c iio: accel: Use iio_push_to_buffers_with_ts() to provide length for runtime checks. 2025-05-21 14:20:26 +01:00
mma7455_i2c.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
mma7455_spi.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
mma7660.c iio: accel: Drop unnecessary -ENOMEM messages 2025-08-25 12:28:10 +01:00
mma8452.c iio: accel: Remove redundant pm_runtime_mark_last_busy() calls 2025-08-25 15:56:12 +01:00
mma9551.c iio: Remove single use of macro definition for IRQ name 2025-06-09 07:45:36 +01:00
mma9551_core.c iio: accel: Remove redundant pm_runtime_mark_last_busy() calls 2025-08-25 15:56:12 +01:00
mma9551_core.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 288 2019-06-05 17:36:37 +02:00
mma9553.c iio: accel: mma9553: make mma9553_event_info const 2025-07-06 10:37:51 +01:00
msa311.c iio: accel: Remove redundant pm_runtime_mark_last_busy() calls 2025-08-25 15:56:12 +01:00
mxc4005.c iio: Remove single use of macro definition for regmap name 2025-06-09 07:45:36 +01:00
mxc6255.c iio: Remove single use of macro definition for regmap name 2025-06-09 07:45:36 +01:00
sca3000.c iio: sca3000: Fix a resource leak in sca3000_probe() 2026-02-26 14:59:35 -08:00
sca3300.c iio: accel: sca3300: fix uninitialized iio scan data 2025-08-11 21:35:01 +01:00
ssp_accel_sensor.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
st_accel.h iio: accel: st_accel: add support for LIS2DS12 2024-06-25 21:04:49 +01:00
st_accel_buffer.c iio:st-sensors: Remove duplicate MODULE_* 2022-02-18 11:36:54 +00:00
st_accel_core.c iio: accel: iis328dq: fix gain values 2026-01-30 10:32:22 +01:00
st_accel_i2c.c iio: normalize array sentinel style 2025-04-22 19:10:04 +01:00
st_accel_spi.c iio: normalize array sentinel style 2025-04-22 19:10:04 +01:00
stk8ba50.c iio: accel: Drop unnecessary -ENOMEM messages 2025-08-25 12:28:10 +01:00
stk8312.c iio: accel: Drop unnecessary -ENOMEM messages 2025-08-25 12:28:10 +01:00