hwmon: (acpi_power_meter) Fix 4.29 MW bug
authorArmin Wolf <W_Armin@gmx.de>
Fri, 24 Nov 2023 18:27:47 +0000 (19:27 +0100)
committerGuenter Roeck <linux@roeck-us.net>
Fri, 1 Dec 2023 04:12:28 +0000 (20:12 -0800)
commit1fefca6c57fb928d2131ff365270cbf863d89c88
treeeaa012cf5fca1bbab3fa3c796647c787afebf109
parent58ebe7fb6eb2deed0fd05cf57911fea3f36124eb
hwmon: (acpi_power_meter) Fix 4.29 MW bug

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: de584afa5e18 ("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>
drivers/hwmon/acpi_power_meter.c