linux/drivers/iio
Quentin Schulz 82237f2682 iio: adc: sun4i-gpadc-iio: fix parent device being used in devm function
For the sake of DT binding stability, this IIO driver is a child of an
MFD driver for Allwinner A10, A13 and A31 because there already exists a
DT binding for this IP. The MFD driver has a DT node but the IIO driver
does not.

The IIO device registers the temperature sensor in the thermal framework
using the DT node of the parent, the MFD device, so the thermal
framework could match the phandle to the MFD device in the DT and the
struct device used to register in the thermal framework.

devm_thermal_zone_of_sensor_register was previously used to register the
thermal sensor with the parent struct device of the IIO device,
representing the MFD device. By doing so, we registered actually the
parent in the devm routine and not the actual IIO device.

This lead to the devm unregister function not being called when the IIO
module driver is removed. It resulted in the thermal framework still
polling the get_temp function of the IIO module while the device doesn't
exist anymore, thus generated a kernel panic.

Use the non-devm function instead and do the unregister manually in the
remove function.

Fixes: d1caa99055 ("iio: adc: add support for Allwinner SoCs ADC")

Signed-off-by: Quentin Schulz <quentin.schulz@free-electrons.com>
Reported-by: Corentin Labbe <clabbe.montjoie@gmail.com>
Reviewed-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2017-05-21 15:17:40 +01:00
..
accel Merge 4.11-rc6 into staging-next 2017-04-10 15:21:55 +02:00
adc iio: adc: sun4i-gpadc-iio: fix parent device being used in devm function 2017-05-21 15:17:40 +01:00
amplifiers
buffer iio:buffer.h - split into buffer.h and buffer_impl.h 2017-01-10 19:54:55 +00:00
chemical drivers: iio: chemical: replace comma with a semicolon 2017-03-30 19:13:23 +01:00
common Fifth set of IIO fixes for the 4.11 cycle. 2017-04-18 19:38:38 +02:00
counter iio: pc104: Mask PC/104 drivers via the PC104 Kconfig option 2017-03-15 21:59:08 +00:00
dac Fifth set of IIO fixes for the 4.11 cycle. 2017-04-18 19:38:38 +02:00
dummy iio:dummy: Stop enabling timestamp by default. 2017-01-10 19:54:55 +00:00
frequency iio: frequency: ad9523: use unsigned int rather then bare unsigned 2016-04-17 10:31:03 +01:00
gyro Fourth set of IIO new device support, features and cleanups for the 4.12 cycle 2017-04-18 17:13:31 +02:00
health First set of IIO new device support, features and cleanup for the 4.12 cycle. 2017-03-06 13:17:21 +01:00
humidity iio: humidity: hts221: Remove unnecessary cast on void pointer 2017-04-02 09:50:32 +01:00
imu iio: imu: st_lsm6dsx: simplify data ready pin parsing 2017-04-14 15:32:43 +01:00
light iio: light: ltr501 Fix interchanged als/ps register field 2017-05-21 14:47:39 +01:00
magnetometer Merge 4.11-rc4 into staging-next 2017-03-27 09:11:25 +02:00
orientation iio: orientation: hid-sensor-rotation: Add PM function (fix non working driver) 2016-11-05 17:47:47 +00:00
potentiometer iio: max5481: Add support for Maxim digital potentiometers 2017-01-28 12:13:31 +00:00
potentiostat iio: lmp91000: Set parent device 2017-02-19 12:01:52 +00:00
pressure Fifth set of IIO fixes for the 4.11 cycle. 2017-04-18 19:38:38 +02:00
proximity iio: proximity: as3935: fix iio_trigger_poll issue 2017-05-07 13:21:55 +01:00
temperature iio: mlx96014: Add OF device ID table 2017-03-19 10:49:24 +00:00
trigger Fifth set of IIO fixes for the 4.11 cycle. 2017-04-18 19:38:38 +02:00
iio_core_trigger.h
iio_core.h iio:core: timestamping clock selection support 2016-06-30 19:41:38 +01:00
industrialio-buffer.c sched/headers: Prepare to move signal wakeup & sigpending methods from <linux/sched.h> into <linux/sched/signal.h> 2017-03-02 08:42:32 +01:00
industrialio-configfs.c iio:configfs: Introduce iio/configfs.h to provide a location for the configfs_subsystem 2015-12-05 16:25:30 +00:00
industrialio-core.c iio: core: Fix IIO_VAL_FRACTIONAL_LOG2 for negative values 2017-04-02 11:14:49 +01:00
industrialio-event.c iio: iio_push_event(): Don't crash if the event interface is not registered 2016-09-10 16:40:44 +01:00
industrialio-sw-device.c iio: Add support for creating IIO devices via configfs 2016-05-04 11:43:54 +01:00
industrialio-sw-trigger.c iio: core: fix ptr_ret.cocci warnings 2016-01-20 17:09:18 -08:00
industrialio-trigger.c iio: trigger: fix NULL pointer dereference in iio_trigger_write_current() 2017-05-21 12:36:59 +01:00
industrialio-triggered-event.c
inkern.c iio: inkern: pass through raw values if no scaling 2017-01-14 12:20:18 +00:00
Kconfig iio: 104-quad-8: Add IIO support for the ACCES 104-QUAD-8 2016-10-01 17:06:21 +01:00
Makefile iio: 104-quad-8: Add IIO support for the ACCES 104-QUAD-8 2016-10-01 17:06:21 +01:00