kernel-fxtec-pro1x/drivers/hwmon
Guenter Roeck 3c2e2266a5 hwmon: (max1111) Return -ENODEV from max1111_read_channel if not instantiated
arm:pxa_defconfig can result in the following crash if the max1111 driver
is not instantiated.

Unhandled fault: page domain fault (0x01b) at 0x00000000
pgd = c0004000
[00000000] *pgd=00000000
Internal error: : 1b [#1] PREEMPT ARM
Modules linked in:
CPU: 0 PID: 300 Comm: kworker/0:1 Not tainted 4.5.0-01301-g1701f680407c #10
Hardware name: SHARP Akita
Workqueue: events sharpsl_charge_toggle
task: c390a000 ti: c391e000 task.ti: c391e000
PC is at max1111_read_channel+0x20/0x30
LR is at sharpsl_pm_pxa_read_max1111+0x2c/0x3c
pc : [<c03aaab0>]    lr : [<c0024b50>]    psr: 20000013
...
[<c03aaab0>] (max1111_read_channel) from [<c0024b50>]
					(sharpsl_pm_pxa_read_max1111+0x2c/0x3c)
[<c0024b50>] (sharpsl_pm_pxa_read_max1111) from [<c00262e0>]
					(spitzpm_read_devdata+0x5c/0xc4)
[<c00262e0>] (spitzpm_read_devdata) from [<c0024094>]
					(sharpsl_check_battery_temp+0x78/0x110)
[<c0024094>] (sharpsl_check_battery_temp) from [<c0024f9c>]
					(sharpsl_charge_toggle+0x48/0x110)
[<c0024f9c>] (sharpsl_charge_toggle) from [<c004429c>]
					(process_one_work+0x14c/0x48c)
[<c004429c>] (process_one_work) from [<c0044618>] (worker_thread+0x3c/0x5d4)
[<c0044618>] (worker_thread) from [<c004a238>] (kthread+0xd0/0xec)
[<c004a238>] (kthread) from [<c000a670>] (ret_from_fork+0x14/0x24)

This can occur because the SPI controller driver (SPI_PXA2XX) is built as
module and thus not necessarily loaded. While building SPI_PXA2XX into the
kernel would make the problem disappear, it appears prudent to ensure that
the driver is instantiated before accessing its data structures.

Cc: Arnd Bergmann <arnd@arndb.de>
Cc: stable@vger.kernel.org
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2016-03-27 10:37:48 -07:00
..
pmbus hwmon: (adm1275) Add support for ADM1278 2016-03-05 06:36:03 -08:00
ab8500.c hwmon: (ab8500) Call kernel_power_off instead of pm_power_off 2014-10-03 08:19:02 -07:00
abituguru.c hwmon: drop owner assignment from platform_drivers 2014-10-20 16:20:36 +02:00
abituguru3.c hwmon: drop owner assignment from platform_drivers 2014-10-20 16:20:36 +02:00
abx500.c hwmon: (abx500) drop the use of IRQF_NO_SUSPEND 2015-10-14 07:57:14 -07:00
abx500.h
acpi_power_meter.c
ad7314.c spi: Drop owner assignment from spi_drivers 2015-10-28 10:30:17 +09:00
ad7414.c hwmon: (ad7414) Convert to devm_hwmon_device_register_with_groups 2014-08-04 07:01:35 -07:00
ad7418.c hwmon: (ad7418) Convert to devm_hwmon_device_register_with_groups 2014-08-04 07:01:35 -07:00
adc128d818.c hwmon: (adc128d818) Do proper sign extension 2015-01-25 21:24:00 -08:00
adcxx.c spi: Drop owner assignment from spi_drivers 2015-10-28 10:30:17 +09:00
adm1021.c hwmon: (adm1021) Avoid forward declaration 2014-08-04 07:01:36 -07:00
adm1025.c hwmon: (adm1025) Fix vrm write operation 2014-08-05 19:44:36 -07:00
adm1026.c hwmon: (adm1026) Fix vrm write operation 2014-08-05 19:44:36 -07:00
adm1029.c hwmon: (adm1029) Convert to devm_hwmon_device_register_with_groups 2014-08-04 07:01:35 -07:00
adm1031.c hwmon: (adm1031) Convert to devm_hwmon_device_register_with_groups 2014-08-04 07:01:37 -07:00
adm9240.c hwmon: (adm9240) Convert to devm_hwmon_device_register_with_groups 2014-08-04 07:01:37 -07:00
ads1015.c hwmon: (ads1015) Handle negative conversion values correctly 2016-02-18 19:14:04 -08:00
ads7828.c hwmon: (ads7828) Check return value of devm_regmap_init_i2c 2015-02-22 20:10:30 -08:00
ads7871.c spi: Drop owner assignment from spi_drivers 2015-10-28 10:30:17 +09:00
adt7x10.c
adt7x10.h
adt7310.c spi: Drop owner assignment from spi_drivers 2015-10-28 10:30:17 +09:00
adt7410.c
adt7411.c hwmon: (adt7411) Convert to devm_hwmon_device_register_with_groups 2014-08-04 07:01:40 -07:00
adt7462.c hwmon: (adt7462) Convert to devm_hwmon_device_register_with_groups 2014-08-04 07:01:39 -07:00
adt7470.c hwmon: (adt7470) Convert to devm_hwmon_device_register_with_groups 2014-08-04 07:01:39 -07:00
adt7475.c
amc6821.c hwmon: (amc6821) Convert to devm_hwmon_device_register_with_groups 2014-08-04 07:01:35 -07:00
applesmc.c hwmon : (applesmc) Fix uninitialized variables warnings 2015-11-15 21:52:39 -08:00
asb100.c hwmon: (asb100) Fix vrm write operation 2014-08-05 19:44:36 -07:00
asc7621.c hwmon: (asc7621) Make map tables const 2014-08-04 07:01:38 -07:00
asus_atk0110.c fs.h, drivers/hwmon/asus_atk0110.c: fix DEFINE_SIMPLE_ATTRIBUTE semicolon definition and use 2014-08-06 18:01:23 -07:00
atxp1.c hwmon: (atxp1) Drop auto-detection 2015-05-31 22:58:36 -07:00
coretemp.c hwmon: (coretemp) Increase limit of maximum core ID from 32 to 128. 2015-10-14 07:57:14 -07:00
da9052-hwmon.c hwmon: drop owner assignment from platform_drivers 2014-10-20 16:20:36 +02:00
da9055-hwmon.c hwmon: drop owner assignment from platform_drivers 2014-10-20 16:20:36 +02:00
dell-smm-hwmon.c hwmon: (dell-smm) Blacklist Dell Studio XPS 8000 2016-01-24 19:26:18 -08:00
dme1737.c hwmon: drop owner assignment from platform_drivers 2014-10-20 16:20:36 +02:00
ds620.c hwmon: (ds620) Convert to devm_hwmon_device_register_with_groups 2014-08-04 07:01:38 -07:00
ds1621.c hwmon: (ds1621) Update zbits after conversion rate change 2014-08-28 11:18:47 -07:00
emc6w201.c hwmon: (emc6w201) Fix temperature limit range 2014-08-05 17:49:12 -07:00
emc1403.c hwmon: Make regmap configs const 2014-08-04 07:01:35 -07:00
emc2103.c hwmon: (emc2103) Convert to devm_hwmon_device_register_with_groups 2014-08-04 07:01:40 -07:00
f71805f.c hwmon: drop owner assignment from platform_drivers 2014-10-20 16:20:36 +02:00
f71882fg.c hwmon: (f71882fg) Add support for f81768d 2015-08-09 13:44:26 -07:00
f75375s.c
fam15h_power.c hwmon: (fam15h_power) Add bit masking for tdp_limit 2016-01-27 18:48:46 -08:00
fschmd.c
g760a.c hwmon: (g760a) Convert to devm_hwmon_device_register_with_groups 2014-08-04 07:01:37 -07:00
g762.c hwmon: (g762) Drop owner assignment from struct i2c_driver 2015-08-09 13:44:26 -07:00
gl518sm.c hwmon: (gl518sm) Convert to devm_hwmon_device_register_with_groups 2014-08-04 07:01:36 -07:00
gl520sm.c hwmon: (gl520sm) Convert to devm_hwmon_device_register_with_groups 2014-08-04 07:01:36 -07:00
gpio-fan.c hwmon: (gpio-fan) Remove un-necessary speed_index lookup for thermal hook 2016-02-19 17:14:25 -08:00
hih6130.c hwmon: (hih6130) Fix missing hih6130->write_length setting 2014-08-05 19:40:27 -07:00
hwmon-vid.c
hwmon.c
i5k_amb.c hwmon: drop owner assignment from platform_drivers 2014-10-20 16:20:36 +02:00
i5500_temp.c hwmon: (i5500_temp) Convert to use ATTRIBUTE_GROUPS macro 2015-01-24 14:16:22 +01:00
ibmaem.c hwmon: (ibmaem) constify aem_rw_sensor_template and aem_ro_sensor_template structures 2016-01-04 08:56:22 -08:00
ibmpex.c hwmon: (ibmpex) Allow format string checking 2015-03-09 09:59:35 -07:00
ibmpowernv.c hwmon: (ibmpowernv) Add OF compatibility table entry 2015-10-14 07:57:14 -07:00
iio_hwmon.c hwmon: (iio_hwmon) Allow the driver to accept hypen in device tree node names 2016-03-05 06:25:34 -08:00
ina2xx.c hwmon: (ina2xx) remove no longer used variable 'kind' 2015-10-31 08:46:01 -07:00
ina209.c
it87.c hwmon: (it87) Add support for IT8732F 2015-08-09 13:44:27 -07:00
jc42.c hwmon: (jc42) Add support for additional IDT temperature sensors 2015-03-09 09:59:35 -07:00
jz4740-hwmon.c hwmon: drop owner assignment from platform_drivers 2014-10-20 16:20:36 +02:00
k8temp.c
k10temp.c hwmon: (k10temp) Remove duplicate pci-id define 2015-11-09 10:14:29 +01:00
Kconfig hwmon: Create an NSA320 hardware monitoring driver 2016-03-08 18:40:49 -08:00
lineage-pem.c hwmon: (lineage-pem) Convert to devm_hwmon_device_register_with_groups 2014-08-04 07:01:37 -07:00
lm63.c hwmon: (lm63) Fix smatch warnings 2014-08-04 07:01:36 -07:00
lm70.c spi: Drop owner assignment from spi_drivers 2015-10-28 10:30:17 +09:00
lm73.c
lm75.c hwmon: (lm75) Add support for TMP75C 2015-10-14 07:57:14 -07:00
lm75.h
lm77.c
lm78.c hwmon: drop owner assignment from platform_drivers 2014-10-20 16:20:36 +02:00
lm80.c
lm83.c
lm85.c hwmon: (lm85) use find_closest() in x_TO_REG() functions 2015-04-17 09:03:55 -04:00
lm87.c hwmon: (lm87) Fix vrm write operation 2014-08-05 19:44:42 -07:00
lm90.c
lm92.c hwmon: (lm92) Prevent overflow problem when writing large limits 2014-08-05 17:48:52 -07:00
lm93.c hwmon: (lm93) Convert to devm_hwmon_device_register_with_groups 2014-08-04 07:01:36 -07:00
lm95234.c hwmon: (lm95234) Add support for LM95233 2014-12-02 06:11:53 -08:00
lm95241.c
lm95245.c hwmon: (lm95245) Add support for LM95235 2014-12-02 03:44:18 -08:00
ltc2945.c hwmon: Make regmap configs const 2014-08-04 07:01:35 -07:00
ltc2990.c hwmon: Add LTC2990 sensor driver 2016-03-05 06:25:34 -08:00
ltc4151.c
ltc4215.c
ltc4222.c hwmon: Make regmap configs const 2014-08-04 07:01:35 -07:00
ltc4245.c
ltc4260.c hwmon: Make regmap configs const 2014-08-04 07:01:35 -07:00
ltc4261.c
Makefile hwmon: Create an NSA320 hardware monitoring driver 2016-03-08 18:40:49 -08:00
max197.c hwmon: (max197) Constify platform_device_id 2015-05-31 22:58:36 -07:00
max1111.c hwmon: (max1111) Return -ENODEV from max1111_read_channel if not instantiated 2016-03-27 10:37:48 -07:00
max1619.c
max1668.c hwmon: (max1668) Make max1668_addr_list array const 2014-08-04 07:01:39 -07:00
max6639.c hwmon: (max6639) Make normal_i2c array const 2014-08-04 07:01:39 -07:00
max6642.c
max6650.c
max6697.c hwmon: (max6697) Use of_property_read_bool at appropriate places 2014-08-04 07:01:40 -07:00
max16065.c hwmon: (max16065) Use PTR_ERR_OR_ZERO 2014-08-04 07:01:38 -07:00
max31790.c hwmon: (max31790) Fix dereference of ERR_PTR 2015-10-14 07:57:14 -07:00
mc13783-adc.c hwmon: drop owner assignment from platform_drivers 2014-10-20 16:20:36 +02:00
mcp3021.c hwmon: (mcp3021) Fix broken output scaling 2015-07-01 13:56:27 -07:00
menf21bmc_hwmon.c Merge branch 'platform/remove_owner' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux into driver-core-next 2014-11-03 19:53:56 -08:00
nct6683.c hwmon: (nct6683) Add basic support for NCT6683 on Mitac boards 2016-01-09 07:31:58 -08:00
nct6775.c hwmon: (nct6683,nct6775) constify sensor_template_group structures 2015-12-18 08:20:59 -08:00
nct7802.c hwmon: (nct7802) Add auto_point attributes 2015-08-09 13:44:27 -07:00
nct7904.c hwmon: (nct7904) Export I2C module alias information 2015-08-05 08:31:59 -07:00
nsa320-hwmon.c hwmon: Create an NSA320 hardware monitoring driver 2016-03-08 18:40:49 -08:00
ntc_thermistor.c hwmon: (ntc_thermistor) Add support for ncpXXxh103 2016-03-05 06:25:34 -08:00
pc87360.c hwmon: drop owner assignment from platform_drivers 2014-10-20 16:20:36 +02:00
pc87427.c hwmon: drop owner assignment from platform_drivers 2014-10-20 16:20:36 +02:00
pcf8591.c
powr1220.c
pwm-fan.c hwmon: (pwm-fan) Fix module autoload for OF platform driver 2015-09-20 17:50:19 -07:00
s3c-hwmon.c hwmon: drop owner assignment from platform_drivers 2014-10-20 16:20:36 +02:00
sch56xx-common.c hwmon: (sch56xx) Drop watchdog driver data reference count callbacks 2015-12-29 20:36:04 +01:00
sch56xx-common.h
sch5627.c hwmon: drop owner assignment from platform_drivers 2014-10-20 16:20:36 +02:00
sch5636.c hwmon: drop owner assignment from platform_drivers 2014-10-20 16:20:36 +02:00
scpi-hwmon.c hwmon: (scpi) add energy meter support 2016-02-16 09:26:27 +00:00
sht15.c hwmon:change sht15_reverse() 2015-08-10 23:00:10 -07:00
sht21.c hwmon: (sht21) Convert to devm_hwmon_device_register_with_groups 2014-08-04 07:01:38 -07:00
shtc1.c
sis5595.c hwmon: drop owner assignment from platform_drivers 2014-10-20 16:20:36 +02:00
smm665.c hwmon: (smm665) Convert to devm_hwmon_device_register_with_groups 2014-08-04 07:01:37 -07:00
smsc47b397.c hwmon: drop owner assignment from platform_drivers 2014-10-20 16:20:36 +02:00
smsc47m1.c hwmon: drop owner assignment from platform_drivers 2014-10-20 16:20:36 +02:00
smsc47m192.c hwmon: (smsc47m192) Convert to devm_hwmon_device_register_with_groups 2014-08-04 07:01:39 -07:00
tc74.c hwmon: add driver for Microchip TC74 2015-06-21 22:54:53 -07:00
thmc50.c hwmon: (thmc50) Convert to devm_hwmon_device_register_with_groups 2014-08-04 07:01:39 -07:00
tmp102.c hwmon: (tmp102) Force wait for conversion time for the first valid data 2015-12-10 08:14:22 -08:00
tmp103.c hwmon: (tmp103) Fix resource leak bug in tmp103 temperature sensor driver 2014-09-22 11:11:48 -07:00
tmp401.c hwmon: (tmp401) Do not auto-detect chip on I2C address 0x37 2015-05-29 13:37:06 -07:00
tmp421.c hwmon: (tmp421) Drop FSF mailing address 2014-08-04 07:01:38 -07:00
twl4030-madc-hwmon.c hwmon: drop owner assignment from platform_drivers 2014-10-20 16:20:36 +02:00
ultra45_env.c hwmon: drop owner assignment from platform_drivers 2014-10-20 16:20:36 +02:00
vexpress-hwmon.c hwmon: (vexpress) rename vexpress hwmon implementation 2016-03-05 06:25:33 -08:00
via-cputemp.c hwmon: drop owner assignment from platform_drivers 2014-10-20 16:20:36 +02:00
via686a.c hwmon: drop owner assignment from platform_drivers 2014-10-20 16:20:36 +02:00
vt1211.c hwmon: drop owner assignment from platform_drivers 2014-10-20 16:20:36 +02:00
vt8231.c hwmon: drop owner assignment from platform_drivers 2014-10-20 16:20:36 +02:00
w83l785ts.c
w83l786ng.c
w83627ehf.c hwmon: (w83627ehf) Use swap() in w82627ehf_swap_tempreg() 2015-07-03 14:39:06 +02:00
w83627hf.c hwmon: drop owner assignment from platform_drivers 2014-10-20 16:20:36 +02:00
w83781d.c hwmon: drop owner assignment from platform_drivers 2014-10-20 16:20:36 +02:00
w83791d.c hwmon: (w83791d) Fix vrm write operation 2014-08-05 19:44:42 -07:00
w83792d.c hwmon: (w83792d) Additional PWM outputs support 2015-07-03 14:39:05 +02:00
w83793.c hwmon: (w83793) Fix vrm write operation 2014-08-05 19:44:42 -07:00
w83795.c hwmon: (w83795) use find_closest_descending() in pwm_freq_to_reg() 2015-04-17 09:03:55 -04:00
wm831x-hwmon.c hwmon: drop owner assignment from platform_drivers 2014-10-20 16:20:36 +02:00
wm8350-hwmon.c hwmon: drop owner assignment from platform_drivers 2014-10-20 16:20:36 +02:00