linux-yocto/drivers/iio/accel
Sean Nyekjaer dda42f23a8 iio: accel: fxls8962af: Fix use after free in fxls8962af_fifo_flush
commit 1fe16dc1a2 upstream.

fxls8962af_fifo_flush() uses indio_dev->active_scan_mask (with
iio_for_each_active_channel()) without making sure the indio_dev
stays in buffer mode.
There is a race if indio_dev exits buffer mode in the middle of the
interrupt that flushes the fifo. Fix this by calling
synchronize_irq() to ensure that no interrupt is currently running when
disabling buffer mode.

Unable to handle kernel NULL pointer dereference at virtual address 00000000 when read
[...]
_find_first_bit_le from fxls8962af_fifo_flush+0x17c/0x290
fxls8962af_fifo_flush from fxls8962af_interrupt+0x80/0x178
fxls8962af_interrupt from irq_thread_fn+0x1c/0x7c
irq_thread_fn from irq_thread+0x110/0x1f4
irq_thread from kthread+0xe0/0xfc
kthread from ret_from_fork+0x14/0x2c

Fixes: 79e3a5bdd9 ("iio: accel: fxls8962af: add hw buffered sampling")
Cc: stable@vger.kernel.org
Suggested-by: David Lechner <dlechner@baylibre.com>
Signed-off-by: Sean Nyekjaer <sean@geanix.com>
Link: https://patch.msgid.link/20250603-fxlsrace-v2-1-5381b36ba1db@geanix.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2025-07-24 08:53:15 +02:00
..
adis16201.c iio: adis16201: Correct inclinometer channel resolution 2025-05-18 08:24:07 +02:00
adis16209.c
adxl313_core.c
adxl313_i2c.c iio: accel: adxl313: Use i2c_get_match_data 2023-07-29 12:30:39 +01:00
adxl313_spi.c
adxl313.h
adxl345_core.c
adxl345_i2c.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
adxl345_spi.c
adxl345.h
adxl355_core.c iio: accel: adxl355: Make timestamp 64-bit aligned using aligned_s64 2025-05-18 08:24:09 +02:00
adxl355_i2c.c iio: accel: adxl355: Simplify probe() 2023-07-22 17:24:51 +01:00
adxl355_spi.c
adxl355.h
adxl367_i2c.c iio: accel: adxl367: fix I2C FIFO data register 2024-04-03 15:28:45 +02:00
adxl367_spi.c
adxl367.c iio: accel: adxl367: fix setting odr for activity time update 2025-05-18 08:24:09 +02:00
adxl367.h
adxl372_i2c.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
adxl372_spi.c iio: adc: Explicitly include correct DT includes 2023-07-23 13:38:13 +01:00
adxl372.c
adxl372.h
bma180.c iio: adc: Explicitly include correct DT includes 2023-07-23 13:38:13 +01:00
bma220_spi.c
bma400_core.c iio: accel: bma400: Fix uninitialized variable field_value in tap event handling. 2024-11-01 01:58:17 +01:00
bma400_i2c.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
bma400_spi.c
bma400.h
bmc150-accel-core.c
bmc150-accel-i2c.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
bmc150-accel-spi.c
bmc150-accel.h
bmi088-accel-core.c
bmi088-accel-spi.c
bmi088-accel.h
cros_ec_accel_legacy.c
da280.c iio: accel: da280: Add support for the DA217 accelerometer 2023-07-20 19:21:29 +01:00
da311.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
dmard06.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
dmard09.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
dmard10.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
fxls8962af-core.c iio: accel: fxls8962af: Fix use after free in fxls8962af_fifo_flush 2025-07-24 08:53:15 +02:00
fxls8962af-i2c.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
fxls8962af-spi.c
fxls8962af.h
hid-sensor-accel-3d.c
Kconfig iio: accel: kx022a: add missing select IIO_(TRIGGERED_)BUFFER in Kconfig 2024-10-22 15:46:31 +02:00
kionix-kx022a-i2c.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
kionix-kx022a-spi.c iio: kx022a: Probe asynchronously 2023-05-13 17:56:06 +01:00
kionix-kx022a.c iio: accel: kx022a: Fix raw read format 2024-12-09 10:33:09 +01:00
kionix-kx022a.h
kxcjk-1013.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
kxsd9-i2c.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
kxsd9-spi.c iio: adc: Explicitly include correct DT includes 2023-07-23 13:38:13 +01:00
kxsd9.c
kxsd9.h
Makefile
mc3230.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
mma7455_core.c
mma7455_i2c.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
mma7455_spi.c
mma7455.h
mma7660.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
mma8452.c iio: accel: mma8452: Ensure error return on failure to matching oversampling ratio 2025-04-10 14:37:33 +02:00
mma9551_core.c
mma9551_core.h
mma9551.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
mma9553.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
msa311.c iio: accel: msa311: Fix failure to release runtime pm if direct mode claim fails. 2025-04-10 14:37:33 +02:00
mxc4005.c iio: accel: mxc4005: Reset chip on probe() and resume() 2024-06-12 11:12:34 +02:00
mxc6255.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
sca3000.c
sca3300.c
ssp_accel_sensor.c
st_accel_buffer.c
st_accel_core.c 1st set of IIO new device support, features and cleanup for the 6.5 cycle. 2023-06-15 13:01:55 +02:00
st_accel_i2c.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
st_accel_spi.c
st_accel.h
stk8ba50.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
stk8312.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00