linux-stable/drivers/hwmon
Armin Wolf 56cc8f1f98 hwmon: (acpi_power_meter) Fix 4.29 MW bug
[ Upstream commit 1fefca6c57 ]

The ACPI specification says:

"If an error occurs while obtaining the meter reading or if the value
is not available then an Integer with all bits set is returned"

Since the "integer" is 32 bits in case of the ACPI power meter,
userspace will get a power reading of 2^32 * 1000 miliwatts (~4.29 MW)
in case of such an error. This was discovered due to a lm_sensors
bugreport (https://github.com/lm-sensors/lm-sensors/issues/460).
Fix this by returning -ENODATA instead.

Tested-by: <urbinek@gmail.com>
Fixes: de584afa5e ("hwmon driver for ACPI 4.0 power meters")
Signed-off-by: Armin Wolf <W_Armin@gmx.de>
Link: https://lore.kernel.org/r/20231124182747.13956-1-W_Armin@gmx.de
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-12-13 16:46:16 +01:00
..
pmbus hwmon: (pmbus) Add Vin unit off handling 2022-04-20 09:08:13 +02:00
Kconfig hwmon: (ltq-cputemp) restrict it to SOC_XWAY 2022-05-18 09:18:06 +02:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ab8500.c
abituguru.c
abituguru3.c
abx500.c
abx500.h
acpi_power_meter.c hwmon: (acpi_power_meter) Fix 4.29 MW bug 2023-12-13 16:46:16 +01:00
ad7314.c hwmon: (ad7314) Convert to devm_hwmon_device_register_with_groups 2016-06-27 18:58:03 -07:00
ad7414.c hwmon: (ad7414) Add OF device ID table 2017-04-02 07:01:53 -07:00
ad7418.c
adc128d818.c hwmon: (adc128d818) constify attribute_group structures. 2017-08-13 08:24:38 -07:00
adcxx.c
adm1021.c hwmon: (adm1021) use permission-specific DEVICE_ATTR variants 2017-01-02 10:19:45 -08:00
adm1025.c hwmon: (adm1025) use permission-specific DEVICE_ATTR variants 2017-01-02 10:19:45 -08:00
adm1026.c hwmon: (adm1026) use permission-specific DEVICE_ATTR variants 2017-01-02 10:19:45 -08:00
adm1029.c
adm1031.c hwmon: (adm1031) use permission-specific DEVICE_ATTR variants 2017-01-02 10:19:45 -08:00
adm9240.c hwmon: (adm9240) use permission-specific DEVICE_ATTR variants 2017-01-02 10:19:45 -08:00
ads1015.c hwmon: (ads1015) Convert to using %pOF instead of full_name 2017-08-13 08:24:38 -07:00
ads7828.c hwmon: (ads7828) Accept optional parameters from device tree 2017-04-02 07:01:53 -07:00
ads7871.c hwmon: (ads7871) Convert to devm_hwmon_device_register_with_groups 2016-06-27 18:58:03 -07:00
adt7x10.c hwmon: (adt7x10) use permission-specific DEVICE_ATTR variants 2017-01-02 10:19:45 -08:00
adt7x10.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
adt7310.c
adt7410.c
adt7411.c hwmon: (adt7411) add min, max and alarm attributes 2017-01-02 10:19:45 -08:00
adt7462.c hwmon: (adt7462) Fix an error return in ADT7462_REG_VOLT() 2020-03-11 18:03:08 +01:00
adt7470.c hwmon: (adt7470) Fix warning on module removal 2022-05-12 12:17:10 +02:00
adt7475.c hwmon: (adt7475) Fix masking of hysteresis registers 2023-03-22 13:26:15 +01:00
amc6821.c hwmon: (amc6821) sign extension temperature 2016-12-02 13:28:04 -08:00
applesmc.c hwmon: (applesmc) check status earlier. 2020-09-09 19:03:06 +02:00
asb100.c hwmon: (asb100) use permission-specific DEVICE_ATTR variants 2017-01-02 10:19:45 -08:00
asc7621.c hwmon: (asc7621) make several arrays static const 2017-08-30 06:31:49 -07:00
aspeed-pwm-tacho.c hwmon: (aspeed-pwm-tacho) Avoid possible buffer overflow 2020-07-29 07:42:55 +02:00
asus_atk0110.c hwmon: (asus_atk0110) fix uninitialized data access 2017-03-23 12:01:57 -07:00
atxp1.c hwmon: (atxp1) use permission-specific DEVICE_ATTR variants 2017-01-02 10:19:45 -08:00
coretemp.c hwmon: (coretemp) fix pci device refcount leak in nv1a_ram_new() 2022-12-08 11:16:32 +01:00
da9052-hwmon.c hwmon: (da9052) Synchronize access with mfd 2020-05-20 08:17:09 +02:00
da9055-hwmon.c
dell-smm-hwmon.c hwmon: (dell-smm) Speed up setting of fan speed 2022-02-16 12:44:52 +01:00
dme1737.c hwmon: (dme1737) Fix overflows seen when writing into limit attributes 2017-01-10 08:57:55 -08:00
ds620.c hwmon: (ds620) move header file out of I2C realm 2017-06-11 17:08:19 -07:00
ds1621.c hwmon: (ds1621) use permission-specific DEVICE_ATTR variants 2017-01-02 10:19:45 -08:00
emc6w201.c hwmon: (emcw201) Fix overflows seen when writing into limit attributes 2016-12-12 11:33:44 -08:00
emc1403.c
emc2103.c hwmon: (emc2103) fix unable to change fan pwm1_enable attribute 2020-07-22 09:22:28 +02:00
f71805f.c hwmon: (f71805f) Use request_muxed_region for Super-IO accesses 2019-05-31 06:47:27 -07:00
f71882fg.c hwmon: (f71882fg) Fix negative temperature 2022-05-18 09:18:07 +02:00
f75375s.c
fam15h_power.c hwmon: (fam15h_power) use permission-specific DEVICE_ATTR variants 2017-01-02 10:19:45 -08:00
fschmd.c hwmon: (fschmd) use permission-specific DEVICE_ATTR variants 2017-01-02 10:19:45 -08:00
ftsteutates.c hwmon: (ftsteutates) constify i2c_device_id 2017-08-29 17:44:23 -07:00
g760a.c hwmon: (g760a) use permission-specific DEVICE_ATTR variants 2017-01-02 10:19:45 -08:00
g762.c scripts/spelling.txt: add "followings" pattern and fix typo instances 2017-02-27 18:43:47 -08:00
gl518sm.c hwmon: (gl518sm) Fix overflows seen when writing into limit attributes 2017-01-10 08:58:36 -08:00
gl520sm.c hwmon: (gl520sm) Fix overflows and crash seen when writing into limit attributes 2017-01-10 08:59:35 -08:00
gpio-fan.c hwmon: (gpio-fan) Fix array out of bounds access 2022-09-15 12:23:50 +02:00
hih6130.c
hwmon-vid.c x86/cpu: Rename cpu_data.x86_mask to cpu_data.x86_stepping 2018-02-22 15:42:24 +01:00
hwmon.c hwmon: Fix possible memleak in __hwmon_device_register() 2021-11-26 11:40:30 +01:00
i5k_amb.c hwmon: (i5k_amb) constify pci_device_id 2017-08-13 08:24:38 -07:00
i5500_temp.c hwmon: (i5500_temp) fix missing pci_disable_device() 2022-12-08 11:16:31 +01:00
ibmaem.c hwmon: (ibmaem) don't call platform_device_del() if platform_device_add() fails 2022-07-07 17:31:17 +02:00
ibmpex.c hwmon: (ibmpex) Fix possible UAF when ibmpex_register_bmc() fails 2022-12-08 11:16:31 +01:00
ibmpowernv.c hwmon: (ibmpowernv) Remove bogus __init annotations 2018-11-27 16:10:48 +01:00
iio_hwmon.c hwmon: (iio_hwmon) defer probe when no channel is found 2016-09-08 21:34:17 -07:00
ina2xx.c hwmon: (ina2xx) Fix current value calculation 2018-12-17 09:28:48 +01:00
ina209.c hwmon: (ina209) Handled signed registers 2017-04-21 12:30:09 -07:00
ina3221.c hwmon: (ina3221) Fix INA3221_CONFIG_MODE macros 2019-11-24 08:23:31 +01:00
it87.c hwmon (it87): Fix voltage scaling for chips with 10.9mV ADCs 2023-04-05 11:14:16 +02:00
jc42.c hwmon: (jc42) Fix name to have no illegal characters 2020-05-02 17:24:45 +02:00
jz4740-hwmon.c hwmon: (jz4740) use permission-specific DEVICE_ATTR variants 2017-01-02 10:19:45 -08:00
k8temp.c x86/cpu: Rename cpu_data.x86_mask to cpu_data.x86_stepping 2018-02-22 15:42:24 +01:00
k10temp.c x86/cpu: Rename cpu_data.x86_mask to cpu_data.x86_stepping 2018-02-22 15:42:24 +01:00
lineage-pem.c
lm63.c hwmon: (lm63) Add OF device ID table 2017-04-02 07:01:53 -07:00
lm70.c hwmon: (lm70) Add support for TI TMP122/124 2017-01-21 12:26:38 -08:00
lm73.c
lm75.c hwmon: (lm75) Fix write operations for negative temperatures 2020-01-27 14:46:44 +01:00
lm75.h
lm77.c
lm78.c hwmon: (lm78) use permission-specific DEVICE_ATTR variants 2017-01-02 10:19:45 -08:00
lm80.c Revert "hwmon: (lm80) fix a missing check of bus read in lm80 probe" 2021-05-26 11:47:00 +02:00
lm83.c hwmon: (lm83) use permission-specific DEVICE_ATTR variants 2017-01-02 10:19:45 -08:00
lm85.c hwmon: (lm85) Add OF device ID table 2017-04-02 07:01:53 -07:00
lm87.c hwmon: (lm87) Add OF device ID table 2017-04-13 06:09:26 -07:00
lm90.c hwmon: (lm90) Reduce maximum conversion rate for G781 2022-02-08 18:16:26 +01:00
lm92.c hwmon: (lm92) use permission-specific DEVICE_ATTR variants 2017-01-02 10:19:45 -08:00
lm93.c hwmon: (lm93) use permission-specific DEVICE_ATTR variants 2017-01-02 10:19:45 -08:00
lm95234.c hwmon: (lm95234) use permission-specific DEVICE_ATTR variants 2017-01-02 10:19:45 -08:00
lm95241.c hwmon: (lm95241) Update module description to include LM95231 2016-09-13 07:28:01 -07:00
lm95245.c hwmon: (lm95245) Add OF device ID table 2017-04-02 07:01:53 -07:00
ltc2945.c hwmon: (ltc2945) Handle error case in ltc2945_value_store 2023-03-11 16:26:39 +01:00
ltc2990.c
ltc4151.c hwmon: (ltc4151) Export OF device ID table as module aliases 2017-01-21 08:57:41 -08:00
ltc4215.c
ltc4222.c
ltc4245.c hwmon: (ltc4245) move header file out of I2C realm 2017-06-11 17:08:19 -07:00
ltc4260.c
ltc4261.c
ltq-cputemp.c hwmon: (ltq-cputemp) add cpu temp sensor driver 2017-09-01 07:24:14 -07:00
max197.c hwmon: (max197) use permission-specific DEVICE_ATTR variants 2017-01-02 10:19:45 -08:00
max1111.c hwmon: (max1111) use permission-specific DEVICE_ATTR variants 2017-01-02 10:19:45 -08:00
max1619.c hwmon: (max1619) use permission-specific DEVICE_ATTR variants 2017-01-02 10:19:45 -08:00
max1668.c
max6639.c hwmon: (max6639) move header file out of I2C realm 2017-06-11 17:08:19 -07:00
max6642.c
max6650.c hwmon: (max6650) use permission-specific DEVICE_ATTR variants 2017-01-02 10:19:45 -08:00
max6697.c hwmon: (max6697) Make sure the OVERT mask is set correctly 2020-07-09 09:36:31 +02:00
max16065.c
max31722.c hwmon: (max31722) Remove non-standard ACPI device IDs 2021-07-20 16:17:35 +02:00
max31790.c hwmon: (max31790) Fix fan speed reporting for fan7..12 2021-07-20 16:17:35 +02:00
mc13783-adc.c hwmon: (mc13783-adc) use permission-specific DEVICE_ATTR variants 2017-01-02 10:19:45 -08:00
mcp3021.c hwmon: (mcp3021) use permission-specific DEVICE_ATTR variants 2017-01-02 10:19:45 -08:00
menf21bmc_hwmon.c
nct6683.c hwmon: (nct6683) use permission-specific DEVICE_ATTR variants 2017-01-02 10:19:45 -08:00
nct6775.c hwmon: (nct6775) Fix register address and added missed tolerance for nct6106 2019-08-16 10:13:51 +02:00
nct7802.c hwmon: (nct7802) Fix for temp6 (PECI1) processed even if PECI1 disabled 2023-08-11 11:33:53 +02:00
nct7904.c hwmon: (nct7904) Convert to use new hwmon registration API 2016-09-08 21:34:18 -07:00
nsa320-hwmon.c hwmon: (nsa320) use permission-specific DEVICE_ATTR variants 2017-01-02 10:19:45 -08:00
ntc_thermistor.c hwmon: (ntc_thermistor) Use devm_hwmon_device_register_with_groups 2016-09-08 21:34:15 -07:00
pc87360.c hwmon: (pc87360) use permission-specific DEVICE_ATTR variants 2017-01-02 10:19:45 -08:00
pc87427.c hwmon: (pc87427) Use request_muxed_region for Super-IO accesses 2019-05-31 06:47:27 -07:00
pcf8591.c hwmon: (pcf8591) use permission-specific DEVICE_ATTR variants 2017-01-02 10:19:45 -08:00
powr1220.c
pwm-fan.c hwmon: (pwm-fan) Silence error on probe deferral 2019-11-24 08:23:31 +01:00
s3c-hwmon.c
sch56xx-common.c hwmon: (sch56xx-common) Replace WDOG_ACTIVE with WDOG_HW_RUNNING 2022-04-20 09:08:13 +02:00
sch56xx-common.h
sch5627.c hwmon: (sch5627) use permission-specific DEVICE_ATTR variants 2017-01-02 10:19:45 -08:00
sch5636.c hwmon: (sch5636) trivial fix of spelling mistake on revision 2016-04-25 07:26:29 -07:00
scpi-hwmon.c hwmon: (scpi-hwmon) shows the negative temperature properly 2021-06-30 08:48:52 -04:00
sht3x.c hwmon: (sht3x) set initial jiffies to last_update 2016-07-31 14:56:36 -07:00
sht15.c hwmon: (sht15) Add device tree support 2017-02-16 06:49:05 -08:00
sht21.c hwmon: (sht21) Add Electronic Identification Code retrieval 2017-01-02 10:19:45 -08:00
shtc1.c hwmon: (shtc1) fix shtc1 and shtw1 id mask 2020-01-27 14:46:46 +01:00
sis5595.c hwmon: (sis5595) use permission-specific DEVICE_ATTR variants 2017-01-02 10:19:45 -08:00
smm665.c
smsc47b397.c hwmon: (smsc47b397) Use request_muxed_region for Super-IO accesses 2019-05-31 06:47:27 -07:00
smsc47m1.c hwmon: (smsc47m1) Use request_muxed_region for Super-IO accesses 2019-05-31 06:47:27 -07:00
smsc47m192.c hwmon: (smsc47m192) use permission-specific DEVICE_ATTR variants 2017-01-02 10:19:45 -08:00
stts751.c hwmon: (stts751) buffer overrun on wrong chip configuration 2017-08-13 08:24:08 -07:00
tc74.c
tc654.c hwmon: Add tc654 driver 2016-12-02 13:28:05 -08:00
thmc50.c
tmp102.c hwmon: (tmp102) Fix first temperature reading 2017-10-24 06:17:14 -07:00
tmp103.c hwmon: (tmp103) Use SIMPLE_DEV_PM_OPS helper macro 2017-04-24 06:30:41 -07:00
tmp108.c hwmon: Add Texas Instruments TMP108 temperature sensor driver. 2016-12-09 21:54:25 -08:00
tmp401.c hwmon: (tmp401) use smb word operations instead of 2 smb byte operations 2017-01-10 09:01:32 -08:00
tmp421.c hwmon: (tmp421) fix rounding for negative values 2021-10-06 15:05:08 +02:00
ultra45_env.c
vexpress-hwmon.c
via-cputemp.c hwmon: (via-cputemp) use permission-specific DEVICE_ATTR variants 2017-01-02 10:19:45 -08:00
via686a.c hwmon: (via686a) use permission-specific DEVICE_ATTR variants 2017-01-02 10:19:45 -08:00
vt1211.c hwmon: (vt1211) Use request_muxed_region for Super-IO accesses 2019-05-31 06:47:27 -07:00
vt8231.c hwmon: (vt8231) use permission-specific DEVICE_ATTR variants 2017-01-02 10:19:45 -08:00
w83l785ts.c
w83l786ng.c
w83627ehf.c hwmon: (w83627ehf) Use request_muxed_region 2017-04-02 07:01:53 -07:00
w83627hf.c hwmon: (w83627hf) Use request_muxed_region for Super-IO accesses 2020-01-27 14:46:29 +01:00
w83781d.c hwmon: (w83781d) use permission-specific DEVICE_ATTR variants 2017-01-02 10:19:45 -08:00
w83791d.c hwmon: (w83791d) use permission-specific DEVICE_ATTR variants 2017-01-02 10:19:45 -08:00
w83792d.c hwmon: (w83792d) use permission-specific DEVICE_ATTR variants 2017-01-02 10:19:45 -08:00
w83793.c hwmon: (w83793) use permission-specific DEVICE_ATTR variants 2017-01-02 10:19:45 -08:00
w83795.c hwmon: (w83795) temp4_type has writable permission 2018-12-17 09:28:49 +01:00
wm831x-hwmon.c
wm8350-hwmon.c
xgene-hwmon.c hwmon: (xgene) Fix use after free bug in xgene_hwmon_remove due to race condition 2023-03-22 13:26:15 +01:00