OrangePi_CM5/drivers/iio
Nuno Sá b9a0526cd0 iio: inkern: only release the device node when done with it
[ Upstream commit 79c3e84874c7d14f04ad58313b64955a0d2e9437 ]

'of_node_put()' can potentially release the memory pointed to by
'iiospec.np' which would leave us with an invalid pointer (and we would
still pass it in 'of_xlate()'). Note that it is not guaranteed for the
of_node lifespan to be attached to the device (to which is attached)
lifespan so that there is (even though very unlikely) the possibility
for the node to be freed while the device is still around. Thus, as there
are indeed some of_xlate users which do access the node, a race is indeed
possible.

As such, we can only release the node after we are done with it.

Fixes: 17d82b47a2 ("iio: Add OF support")
Signed-off-by: Nuno Sá <nuno.sa@analog.com>
Link: https://lore.kernel.org/r/20220715122903.332535-2-nuno.sa@analog.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-10-26 13:25:30 +02:00
..
accel iio: accel: bma400: Reordering of header files 2022-08-21 15:15:54 +02:00
adc iio: adc: at91-sama5d2_adc: disable/prepare buffer on suspend/resume 2022-10-26 13:25:30 +02:00
afe iio: afe: rescale: use s64 for temporary scale calculations 2022-04-08 14:39:49 +02:00
amplifiers
buffer
chemical iio:chemical:ccs811: rearrange iio trigger get and register 2022-06-29 08:59:51 +02:00
common iio: st_sensors: Add a local lock for protecting odr 2022-06-14 18:32:41 +02:00
dac iio: dac: ad5593r: Fix i2c read protocol requirements 2022-10-26 13:25:07 +02:00
dummy iio: dummy: iio_simple_dummy: check the return value of kstrdup() 2022-06-14 18:32:41 +02:00
frequency iio: frequency: adf4350: disable reg and clk on error in adf4350_probe() 2021-07-14 16:55:44 +02:00
gyro iio: gyro: mpu3050: Fix the error handling in mpu3050_power_up() 2022-06-29 08:59:52 +02:00
health
humidity iio: humidity: hdc100x: Add margin to the conversion time 2021-08-18 08:59:04 +02:00
imu iio: imu: inv_icm42600: Fix broken icm42600 (chip id 0 value) 2022-06-29 08:59:52 +02:00
light iio: light: isl29028: Fix the warning in isl29028_remove() 2022-08-21 15:15:24 +02:00
magnetometer iio: magnetometer: ak8975: Fix the error handling in ak8975_power_on() 2022-05-09 09:04:58 +02:00
multiplexer
orientation iio: hid-sensors: select IIO_TRIGGERED_BUFFER under HID_SENSOR_IIO_TRIGGER 2021-05-19 10:13:13 +02:00
position
potentiometer
potentiostat iio: potentiostat: lmp91000: Fix alignment of buffer in iio_push_to_buffers_with_timestamp() 2021-07-14 16:56:37 +02:00
pressure iio: pressure: dps310: Reset chip after timeout 2022-10-26 13:25:07 +02:00
proximity iio: proximity: vl53l0x: Fix return value check of wait_for_completion_timeout 2022-06-14 18:32:32 +02:00
resolver
temperature iio: ltc2983: fix device probe 2021-09-18 13:40:08 +02:00
trigger iio: trigger: sysfs: fix use-after-free on remove 2022-06-29 08:59:52 +02:00
Kconfig
Makefile
TODO
iio_core.h
iio_core_trigger.h
industrialio-buffer.c
industrialio-configfs.c
industrialio-core.c
industrialio-event.c
industrialio-sw-device.c
industrialio-sw-trigger.c
industrialio-trigger.c iio: trigger: Fix reference counting 2021-12-14 11:32:44 +01:00
industrialio-triggered-event.c
inkern.c iio: inkern: only release the device node when done with it 2022-10-26 13:25:30 +02:00