linux-stable/drivers/iio
Ramona Bolboaca b20d95a855 iio: adis: add '__adis_enable_irq()' implementation
[ Upstream commit 99c05e4283 ]

Add '__adis_enable_irq()' implementation which is the unlocked
version of 'adis_enable_irq()'.
Call '__adis_enable_irq()' instead of 'adis_enable_irq()' from
'__adis_intial_startup()' to keep the expected unlocked functionality.

This fix is needed to remove a deadlock for all devices which are
using 'adis_initial_startup()'. The deadlock occurs because the
same mutex is acquired twice, without releasing it.
The mutex is acquired once inside 'adis_initial_startup()', before
calling '__adis_initial_startup()', and once inside
'adis_enable_irq()', which is called by '__adis_initial_startup()'.
The deadlock is removed by calling '__adis_enable_irq()', instead of
'adis_enable_irq()' from within '__adis_initial_startup()'.

Fixes: b600bd7eb3 ("iio: adis: do not disabe IRQs in 'adis_init()'")
Signed-off-by: Ramona Bolboaca <ramona.bolboaca@analog.com>
Reviewed-by: Nuno Sá <nuno.sa@analog.com>
Link: https://lore.kernel.org/r/20221122082757.449452-2-ramona.bolboaca@analog.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-12-31 13:26:26 +01:00
..
accel iio: accel: bma400: Fix memory leak in bma400_get_steps_reg() 2022-12-02 17:43:10 +01:00
adc iio: adc: aspeed: Remove the trim valid dts property. 2022-12-02 17:43:10 +01:00
addac iio: addac: ad74413r: Fix alignment for DMA safety 2022-06-14 11:53:15 +01:00
afe iio: afe: rescale: export symbols used during testing 2022-07-16 19:01:14 +01:00
amplifiers iio: amplifiers: ad8366: Fix alignment for DMA safety 2022-06-14 11:53:15 +01:00
buffer
cdc
chemical iio: chemical: scd4x: Switch to DEFINE_SIMPLE_DEV_PM_OPS() and pm_sleep_ptr() 2022-07-18 18:48:17 +01:00
common iio: cros: Register FIFO callback after sensor is registered 2022-07-18 18:29:13 +01:00
dac iio: dac: ad5593r: Fix i2c read protocol requirements 2022-10-21 12:37:34 +02:00
dummy
filter
frequency IIO new device support, features and minor fixes for 5.20 2022-07-14 15:04:49 +02:00
gyro iio: gyro: itg3200: Switch to DEFINE_SIMPLE_DEV_PM_OPS() and pm_sleep_ptr() 2022-07-18 18:48:18 +01:00
health iio: health: afe4404: Fix oob read in afe4404_[read|write]_raw 2022-12-08 11:30:14 +01:00
humidity IIO new device support, features and minor fixes for 5.20 2022-07-14 15:04:49 +02:00
imu iio: adis: add '__adis_enable_irq()' implementation 2022-12-31 13:26:26 +01:00
light iio: light: rpr0521: add missing Kconfig dependencies 2022-12-08 11:30:14 +01:00
magnetometer iio: magnetometer: yas530: Change data type of hard_offsets to signed 2022-10-21 12:38:37 +02:00
multiplexer
orientation
position
potentiometer iio: potentiometer: mcp4131: Fix alignment for DMA safety 2022-06-14 11:53:19 +01:00
potentiostat
pressure iio: pressure: ms5611: changed hardcoded SPI speed to value limited 2022-11-26 09:27:47 +01:00
proximity iio: proximity: cros_ec_mkbp: Switch to DEFINE_SIMPLE_DEV_PM_OPS() and pm_sleep_ptr() 2022-07-18 18:48:18 +01:00
resolver iio: resolver: ad2s90: Fix alignment for DMA safety 2022-06-14 11:53:19 +01:00
temperature iio: temperature: ltc2983: make bulk write buffer DMA-safe 2022-12-31 13:26:26 +01:00
test iio: test: rework Kconfig to support modules 2022-07-16 19:03:41 +01:00
trigger iio: trigger: sysfs: fix possible memory leak in iio_sysfs_trig_init() 2022-11-26 09:27:47 +01:00
iio_core.h
iio_core_trigger.h
industrialio-buffer.c iio: Don't use bare "unsigned" 2022-07-01 11:19:08 +01:00
industrialio-configfs.c
industrialio-core.c iio: Use per-device lockdep class for mlock 2022-10-21 12:38:43 +02:00
industrialio-event.c
industrialio-sw-device.c iio: Don't use bare "unsigned" 2022-07-01 11:19:08 +01:00
industrialio-sw-trigger.c iio: core: Fix entry not deleted when iio_register_sw_trigger_type() fails 2022-12-02 17:43:10 +01:00
industrialio-trigger.c iio: Be consistent with allocation result tests. 2022-07-18 18:29:30 +01:00
industrialio-triggered-event.c
inkern.c iio: inkern: fix return value in devm_of_iio_channel_get_by_name() 2022-10-21 12:38:37 +02:00
Kconfig
Makefile
TODO