linux/drivers/hwmon
Gui-Dong Han 83e2ba8971 hwmon: (ftsteutates) Fix TOCTOU race in fts_read()
commit 14c9ede9ca upstream.

In the fts_read() function, when handling hwmon_pwm_auto_channels_temp,
the code accesses the shared variable data->fan_source[channel] twice
without holding any locks. It is first checked against
FTS_FAN_SOURCE_INVALID, and if the check passes, it is read again
when used as an argument to the BIT() macro.

This creates a Time-of-Check to Time-of-Use (TOCTOU) race condition.
Another thread executing fts_update_device() can modify the value of
data->fan_source[channel] between the check and its use. If the value
is changed to FTS_FAN_SOURCE_INVALID (0xff) during this window, the
BIT() macro will be called with a large shift value (BIT(255)).
A bit shift by a value greater than or equal to the type width is
undefined behavior and can lead to a crash or incorrect values being
returned to userspace.

Fix this by reading data->fan_source[channel] into a local variable
once, eliminating the race condition. Additionally, add a bounds check
to ensure the value is less than BITS_PER_LONG before passing it to
the BIT() macro, making the code more robust against undefined behavior.

This possible bug was found by an experimental static analysis tool
developed by our team.

Fixes: 1c5759d8ce ("hwmon: (ftsteutates) Replace fanX_source with pwmX_auto_channels_temp")
Cc: stable@vger.kernel.org
Signed-off-by: Gui-Dong Han <hanguidong02@gmail.com>
Link: https://lore.kernel.org/r/20250606071640.501262-1-hanguidong02@gmail.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2025-06-27 11:11:21 +01:00
..
occ move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
peci hwmon: (peci/dimmtemp) Do not provide fake thresholds data 2025-03-13 13:01:52 +01:00
pmbus hwmon: (pmbus) Initialise page count in pmbus_identify() 2025-03-13 13:02:04 +01:00
abituguru.c hwmon: (abituguru) Convert to platform remove callback returning void 2023-10-27 07:27:24 -07:00
abituguru3.c hwmon: (abituguru3) Convert to platform remove callback returning void 2023-10-27 07:27:24 -07:00
acpi_power_meter.c hwmon: (acpi_power_meter) Ensure IPMI space handler is ready on Dell systems 2024-04-28 10:07:34 -07:00
ad7314.c hwmon: (ad7314) Validate leading zero bits and return error 2025-03-13 13:02:05 +01:00
ad7414.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
ad7418.c hwmon: (ad7418) Remove use of i2c_match_id() 2024-06-08 16:07:32 -07:00
adc128d818.c hwmon: (adc128d818) Fix underflows seen when writing limit attributes 2024-07-07 07:48:25 -07:00
adcxx.c spi: make remove callback a void function 2022-02-09 13:00:45 +00:00
adm1025.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
adm1026.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
adm1029.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
adm1031.c hwmon: (adm1031) Remove use of i2c_match_id() 2024-06-08 16:07:32 -07:00
adm1177.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
adm9240.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
ads7828.c hwmon: (ads7828) Remove use of i2c_match_id() 2024-06-08 16:07:32 -07:00
ads7871.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 51 2019-05-24 17:36:42 +02:00
adt7x10.c hwmon: (adt7x10) Use multi-byte regmap operations 2024-07-31 10:43:51 -07:00
adt7x10.h hwmon: (adt7x10) Switch to EXPORT_SIMPLE_DEV_PM_OPS() and pm_sleep_ptr() 2022-09-25 14:22:12 -07:00
adt7310.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
adt7410.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
adt7411.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
adt7462.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
adt7470.c hwmon: (adt7470) Use multi-byte regmap operations 2024-07-31 10:43:51 -07:00
adt7475.c hwmon: (adt7475) Fix memory leak in adt7475_fan_pwm_config() 2024-10-07 08:42:31 -07:00
aht10.c hwmon: (aht10) Remove use of i2c_match_id() 2024-06-08 16:07:32 -07:00
amc6821.c hwmon: (amc6821) Use multi-byte regmap operations 2024-07-31 10:43:51 -07:00
applesmc.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
aquacomputer_d5next.c hwmon: (aquacomputer_d5next) Fix length of speed_input array 2024-12-05 14:02:27 +01:00
as370-hwmon.c hwmon: Explicitly include correct DT includes 2023-08-21 06:04:29 -07:00
asb100.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
asc7621.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
aspeed-g6-pwm-tach.c hwmon: (aspeed-g6-pwm-tacho): Simplify with scoped for each OF child loop 2024-08-27 08:11:15 -07:00
aspeed-pwm-tacho.c hwmon: (aspeed-pwm-tacho): Simplify with scoped for each OF child loop 2024-08-27 08:11:15 -07:00
asus-ec-sensors.c hwmon: (asus-ec-sensors) check sensor index in read_string() 2025-06-19 15:32:05 +02:00
asus_atk0110.c [tree-wide] finally take no_llseek out 2024-09-27 08:18:43 -07:00
asus_rog_ryujin.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
asus_wmi_sensors.c hwmon: (asus_wmi_sensors) Replace deprecated strncpy() with strscpy() 2023-09-29 14:48:31 -07:00
atxp1.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
axi-fan-control.c hwmon: (axi-fan-control) Make use of dev_err_probe() 2024-02-25 12:37:46 -08:00
bt1-pvt.c hwmon: (bt1-pvt) Convert to devm_platform_ioremap_resource() 2023-08-21 06:04:29 -07:00
bt1-pvt.h hwmon: (bt1-pvt) Cache current update timeout 2020-10-04 08:40:10 -07:00
chipcap2.c hwmon: (chipcap2) Drop cc2_disable() in the probe and return dev_err_probe() 2024-08-27 08:10:23 -07:00
coretemp.c hwmon: (coretemp) Extend the bitmask to read temperature to 0xff 2024-04-28 10:08:43 -07:00
corsair-cpro.c hwmon: add missing MODULE_DESCRIPTION() macros 2024-06-08 16:07:33 -07:00
corsair-psu.c hwmon: corsair-psu: add USB id of HX1200i Series 2023 psu 2024-05-29 15:33:18 -07:00
cros_ec_hwmon.c hwmon: (cros_ec) Fix access to restricted __le16 2024-06-07 09:59:58 +00:00
da9052-hwmon.c hwmon: (da9052) Use devm_regulator_get_enable_read_voltage() 2024-05-03 11:08:14 +09:00
da9055-hwmon.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
dell-smm-hwmon.c hwmon: (dell-smm) Increment the number of fans 2025-05-29 11:02:22 +02:00
dme1737.c hwmon: (dme1737) Remove use of i2c_match_id() 2024-06-08 16:07:32 -07:00
drivetemp.c hwmon: (drivetemp) Set scsi command timeout to 10s 2025-02-01 18:39:36 +01:00
ds620.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
ds1621.c hwmon: (ds1621) Remove use of i2c_match_id() 2024-06-08 16:07:32 -07:00
emc6w201.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
emc1403.c hwmon: (emc1403) Add support for EMC1428 and EMC1438. 2024-05-12 09:02:00 -07:00
emc2103.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
emc2305.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
f71805f.c hwmon: (f71805f) Convert to platform remove callback returning void 2023-10-27 07:27:24 -07:00
f71882fg.c hwmon: (f71882fg) Convert to platform remove callback returning void 2023-10-27 07:27:24 -07:00
f75375s.c hwmon: (f75375s) Remove use of i2c_match_id() 2024-06-08 16:07:32 -07:00
fam15h_power.c x86/cpu/topology: Get rid of cpuinfo::x86_max_cores 2024-02-16 15:51:32 +01:00
fschmd.c [tree-wide] finally take no_llseek out 2024-09-27 08:18:43 -07:00
ftsteutates.c hwmon: (ftsteutates) Fix TOCTOU race in fts_read() 2025-06-27 11:11:21 +01:00
g760a.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
g762.c hwmon: (g762) Initialize fans after configuring clock 2024-07-09 15:45:48 -07:00
gigabyte_waterforce.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
gl518sm.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
gl520sm.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
gpio-fan.c hwmon: (gpio-fan) Add missing mutex locks 2025-05-29 11:02:33 +02:00
gsc-hwmon.c hwmon: (gsc-hwmon) fix module autoloading 2024-08-27 08:10:23 -07:00
gxp-fan-ctrl.c hwmon: Explicitly include correct DT includes 2023-08-21 06:04:29 -07:00
hih6130.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
hp-wmi-sensors.c platform/x86: wmi: Pass event data directly to legacy notify handlers 2024-09-05 17:21:59 +02:00
hs3001.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
hwmon-vid.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
hwmon.c hwmon: Remove devm_hwmon_device_unregister() API function 2024-09-13 07:27:36 -07:00
i5k_amb.c hwmon: Use device_show_string() helper for sysfs attributes 2024-05-04 17:37:03 +02:00
i5500_temp.c hwmon: i5500_temp: constify pointers to hwmon_channel_info 2023-04-19 07:08:35 -07:00
ibmaem.c hwmon: (ibmaem) don't call platform_device_del() if platform_device_add() fails 2022-07-01 11:53:29 -07:00
ibmpex.c hwmon: Use device_show_string() helper for sysfs attributes 2024-05-04 17:37:03 +02:00
ibmpowernv.c hwmon: (ibmpowernv) Replace deprecated strncpy() with memcpy() 2023-09-29 14:48:31 -07:00
iio_hwmon.c Char/Misc and other driver changes for 6.11-rc1 2024-07-19 15:55:08 -07:00
ina2xx.c hwmon: (ina2xx) Use shunt voltage to calculate current 2024-08-30 08:34:23 -07:00
ina209.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
ina238.c hwmon: (ina238) Constify struct regmap_config 2024-07-02 11:30:10 -07:00
ina3221.c hwmon: (ina3221): Simplify with scoped for each OF child loop 2024-08-27 08:11:15 -07:00
intel-m10-bmc-hwmon.c hwmon: intel-m10-bmc-hwmon: relabel Columbiaville to CVL Die Temperature 2024-10-07 08:42:31 -07:00
it87.c hwmon: (it87) Remove tests nolonger required 2024-04-30 10:32:14 -07:00
jc42.c [PATCH} hwmon: (jc42) Properly detect TSE2004-compliant devices again 2024-10-14 19:14:08 -07:00
k8temp.c hwmon: k8temp: constify pointers to hwmon_channel_info 2023-04-19 07:08:36 -07:00
k10temp.c hwmon updates for v6.12 2024-09-18 12:40:48 +02:00
Kconfig hwmon: Fix help text for aspeed-g6-pwm-tach 2025-02-08 09:57:13 +01:00
lan966x-hwmon.c hwmon: (lan966x) Use the devm_clk_get_enabled() helper function 2023-08-21 06:04:29 -07:00
lenovo-ec-sensors.c hwmon: Add EC Chip driver for Lenovo ThinkStation motherboards 2024-04-30 10:31:26 -07:00
lineage-pem.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
lm63.c hwmon: (lm63) Remove use of i2c_match_id() 2024-06-08 16:07:32 -07:00
lm70.c hwmon: lm70: simplify with spi_get_device_match_data() 2024-06-08 16:07:32 -07:00
lm73.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
lm75.c hwmon: (lm75) Remove use of i2c_match_id() 2024-06-08 16:07:32 -07:00
lm75.h hwmon: (lm75) Replace kernel.h with the necessary inclusions 2022-07-13 08:38:19 -07:00
lm77.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
lm78.c hwmon: (lm78) Remove use of i2c_match_id() 2024-06-08 16:07:33 -07:00
lm80.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
lm83.c hwmon: (lm83) Remove use of i2c_match_id() 2024-06-08 16:07:33 -07:00
lm85.c hwmon: (lm85) Remove use of i2c_match_id() 2024-06-08 16:07:33 -07:00
lm87.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 (part 2) 2024-05-09 12:56:06 -07:00
lm90.c hwmon: (lm90): Simplify with scoped for each OF child loop 2024-08-27 08:11:15 -07:00
lm92.c hwmon: (lm92) Convert to with_info hwmon API 2024-08-27 08:10:23 -07:00
lm93.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
lm95234.c hwmon: (lm95234) Use multi-byte regmap operations 2024-07-31 10:43:52 -07:00
lm95241.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 (part 2) 2024-05-09 12:56:06 -07:00
lm95245.c hwmon: (lm95245) Use multi-byte regmap operations 2024-07-31 10:43:51 -07:00
lochnagar-hwmon.c hwmon: Explicitly include correct DT includes 2023-08-21 06:04:29 -07:00
ltc2945.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
ltc2947-core.c hwmon: (ltc2947) Move to firmware agnostic API 2024-07-31 10:43:52 -07:00
ltc2947-i2c.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
ltc2947-spi.c hwmon: (ltc2947) Switch to EXPORT_SIMPLE_DEV_PM_OPS() and pm_sleep_ptr() 2022-09-25 14:22:12 -07:00
ltc2947.h hwmon: Add support for ltc2947 2019-11-06 14:37:19 -08:00
ltc2990.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
ltc2991.c hwmon: (ltc2991) Fix mixed signed/unsigned in DIV_ROUND_CLOSEST 2025-01-23 17:22:54 +01:00
ltc2992.c hwmon: (ltc2992) use device_for_each_child_node_scoped() to access child nodes 2024-07-31 10:43:52 -07:00
ltc4151.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
ltc4215.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
ltc4222.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
ltc4245.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
ltc4260.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
ltc4261.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
ltc4282.c hwmon: Add driver for LTC4282 2024-02-25 12:37:10 -08:00
ltq-cputemp.c hwmon: Explicitly include correct DT includes 2023-08-21 06:04:29 -07:00
Makefile hwmon: Add sophgo SG2042 external hardware monitor support 2024-08-27 08:11:15 -07:00
max127.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
max197.c hwmon: (max197) Convert to platform remove callback returning void 2023-10-27 07:27:24 -07:00
max1111.c ARM: pxa: fix missing-prototypes warnings 2023-05-26 13:33:05 +02:00
max1619.c hwmon: (max1619) Improve chip detection code 2024-07-31 10:43:53 -07:00
max1668.c hwmon: (max1668) Convert to use with_info hwmon API 2024-07-31 10:43:53 -07:00
max6620.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
max6621.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 (part 2) 2024-05-09 12:56:06 -07:00
max6639.c hwmon: (max6639) Use multi-byte regmap operations 2024-07-31 10:43:51 -07:00
max6650.c hwmon: (max6650) Use i2c_get_match_data() 2023-12-11 06:20:28 -08:00
max6697.c hwmon: (max6697) Document discrepancy in overtemperature status bit values 2024-07-31 10:43:53 -07:00
max16065.c hwmon: (max16065) Fix alarm attributes 2024-07-31 10:43:52 -07:00
max31722.c hwmon: (max31722) Switch to DEFINE_SIMPLE_DEV_PM_OPS() and pm_sleep_ptr() 2022-09-25 14:22:12 -07:00
max31730.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
max31760.c hwmon: (max31760) convert to use maple tree register cache 2024-02-25 12:37:36 -08:00
max31790.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
max31827.c hwmon: (pmbus/max31827) Explain why enum chips must not start with 0 2024-06-11 07:25:03 -07:00
mc34vr500.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
mc13783-adc.c hwmon: (mc13783-adc) Convert to platform remove callback returning void 2023-10-27 07:27:24 -07:00
mcp3021.c hwmon: (mcp3021) Remove use of i2c_match_id() 2024-06-08 16:07:33 -07:00
menf21bmc_hwmon.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
mlxreg-fan.c hwmon: (mlxreg-fan) Extend number of supported fans 2023-08-25 07:43:04 -07:00
mr75203.c hwmon: add missing MODULE_DESCRIPTION() macros 2024-06-08 16:07:33 -07:00
nct6683.c hwmon: (nct6683) Display warning when enabling driver for unknown customer 2024-05-29 15:23:54 -07:00
nct6775-core.c hwmon: (nct6775-core) Fix out of bounds access for NCT679{8,9} 2025-04-10 14:39:31 +02:00
nct6775-i2c.c hwmon: (nct6775-i2c) Use i2c_get_match_data() 2023-12-11 06:20:28 -08:00
nct6775-platform.c hwmon: (nct6775) Add 665-ACE/600M-CL to ASUS WMI monitoring list 2024-12-14 20:03:37 +01:00
nct6775.h hwmon: (nct6775) Let enum kinds start with index 0 2024-06-11 07:25:13 -07:00
nct7802.c hwmon: (nct7802): Simplify with scoped for each OF child loop 2024-08-27 08:11:15 -07:00
nct7904.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
npcm750-pwm-fan.c hwmon: (npcm750-pwm-fan): Simplify with scoped for each OF child loop 2024-08-27 08:11:15 -07:00
nsa320-hwmon.c hwmon: (nsa320-hwmon) Remove redundant of_match_ptr() 2023-08-21 06:04:31 -07:00
ntc_thermistor.c hwmon: (ntc_thermistor) Fix the ncpXXxh103 sensor table 2025-03-13 13:02:04 +01:00
nzxt-kraken2.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
nzxt-kraken3.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
nzxt-smart2.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
oxp-sensors.c hwmon: (oxp-sensors) Add missing breaks to fix -Wimplicit-fallthrough with clang 2024-08-28 13:33:53 -07:00
pc87360.c hwmon: (pc87360) Use min() macro 2024-08-27 08:12:23 -07:00
pc87427.c hwmon: (pc87427) Convert to platform remove callback returning void 2023-10-27 07:27:24 -07:00
pcf8591.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
powerz.c hwmon: (powerz) add support for ChargerLAB KM002C 2023-10-27 07:27:25 -07:00
powr1220.c hwmon: (powr1220) Remove use of i2c_match_id() 2024-06-08 16:07:33 -07:00
pt5161l.c hwmon: (pt5161l) Fix invalid temperature reading 2024-08-26 20:58:05 -07:00
pwm-fan.c hwmon: (pwmfan) Do not force disable pwm controller 2024-08-27 08:12:23 -07:00
raspberrypi-hwmon.c hwmon: raspberrypi: constify pointers to hwmon_channel_info 2023-04-19 07:08:38 -07:00
sbrmi.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
sbtsi_temp.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
sch56xx-common.c hwmon: (sch5627) Add support for writing limit registers 2023-10-27 07:27:24 -07:00
sch56xx-common.h hwmon: (sch5627) Remove unused declaration sch56xx_watchdog_unregister() 2024-08-27 08:10:23 -07:00
sch5627.c hwmon: (sch5627) convert to use maple tree register cache 2024-02-25 12:37:36 -08:00
sch5636.c hwmon: (sch5636) Print unknown ID in error string via %*pE 2024-09-12 14:27:37 -07:00
scmi-hwmon.c thermal: Add a thermal zone id accessor 2023-03-03 20:45:02 +01:00
scpi-hwmon.c hwmon: Explicitly include correct DT includes 2023-08-21 06:04:29 -07:00
sfctemp.c hwmon: (sfctemp) Simplify error message 2023-04-19 07:08:40 -07:00
sg2042-mcu.c hwmon: Add sophgo SG2042 external hardware monitor support 2024-08-27 08:11:15 -07:00
sht3x.c hwmon: (sht3x) Remove use of i2c_match_id() 2024-06-08 16:07:33 -07:00
sht4x.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
sht15.c hwmon: (sht15) Convert to platform remove callback returning void 2023-10-27 07:27:24 -07:00
sht21.c hwmon: (sht21) Use %*ph to print small buffer 2024-09-12 14:17:29 -07:00
shtc1.c hwmon updates for v6.11-rc1 2024-07-15 17:39:13 -07:00
sis5595.c hwmon: (sis5595) drop unused DIV_TO_REG function 2024-02-25 12:37:47 -08:00
sl28cpld-hwmon.c hwmon: sl28cpld: constify pointers to hwmon_channel_info 2023-04-19 07:08:38 -07:00
smpro-hwmon.c hwmon: smpro: constify pointers to hwmon_channel_info 2023-04-19 07:08:38 -07:00
smsc47b397.c hwmon: cleanup non-bool "valid" data fields 2021-10-12 07:22:41 -07:00
smsc47m1.c hwmon: (smsc47m1) Rename global platform device variable 2024-01-02 08:44:57 -08:00
smsc47m192.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
sparx5-temp.c hwmon: sparx5-temp: constify pointers to hwmon_channel_info 2023-04-19 07:08:38 -07:00
spd5118.c hwmon: (spd5118) Add support for Renesas/ITD SPD5118 hub controllers 2024-06-18 20:07:42 -07:00
stts751.c hwmon: (stts751) Add "st" vendor prefix to "stts751" compatible string 2024-08-27 08:10:23 -07:00
surface_fan.c hwmon: add fan speed monitoring driver for Surface devices 2024-02-25 12:37:36 -08:00
surface_temp.c hwmon: Add thermal sensor driver for Surface Aggregator Module 2024-08-27 08:10:23 -07:00
sy7636a-hwmon.c hwmon: sy7636a: constify pointers to hwmon_channel_info 2023-04-19 07:08:38 -07:00
tc74.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
tc654.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
thmc50.c hwmon: (thmc50) Remove use of i2c_match_id() 2024-06-08 16:07:33 -07:00
tmp102.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
tmp103.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
tmp108.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
tmp401.c hwmon: (tmp401) Use multi-byte regmap operations 2024-07-31 10:43:51 -07:00
tmp421.c hwmon: (tmp421): Simplify with scoped for each OF child loop 2024-08-27 08:11:15 -07:00
tmp464.c hwmon: (tmp464): Simplify with scoped for each OF child loop 2024-08-27 08:11:15 -07:00
tmp513.c hwmon: (tmp513) Fix division of negative numbers 2025-01-23 17:22:53 +01:00
tps23861.c hwmon: (tps23861) Fix reporting of negative temperatures 2024-12-05 14:02:27 +01:00
ultra45_env.c Normalise "name (ad@dr)" MODULE_AUTHORs to "name <ad@dr>" 2024-03-06 13:07:39 -08:00
vexpress-hwmon.c hwmon: (vexpress) Use of_property_present() 2024-08-27 08:10:11 -07:00
via-cputemp.c hwmon: (via-cputemp) Convert to platform remove callback returning void 2023-10-27 07:27:25 -07:00
via686a.c hwmon: (via686a) Convert to platform remove callback returning void 2023-10-27 07:27:25 -07:00
vt1211.c hwmon: (vt1211) Convert to platform remove callback returning void 2023-10-27 07:27:25 -07:00
vt8231.c hwmon: (vt8231) Convert to platform remove callback returning void 2023-10-27 07:27:25 -07:00
w83l785ts.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
w83l786ng.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
w83627ehf.c hwmon: (w83627ehf) Fix underflows seen when writing limit attributes 2024-07-07 07:48:25 -07:00
w83627hf.c hwmon: (w83627hf) Convert to platform remove callback returning void 2023-10-27 07:27:25 -07:00
w83773g.c hwmon: Remove I2C_CLASS_HWMON from drivers w/o detect() and address_list 2024-02-11 13:43:08 -08:00
w83781d.c hwmon: (w83781d) Remove use of i2c_match_id() 2024-06-08 16:07:33 -07:00
w83791d.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
w83792d.c hwmon: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-01 07:47:49 -07:00
w83793.c [tree-wide] finally take no_llseek out 2024-09-27 08:18:43 -07:00
w83795.c hwmon: (w83795): Remove use of i2c_match_id() 2024-06-08 16:07:33 -07:00
wm831x-hwmon.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 271 2019-06-05 17:30:30 +02:00
wm8350-hwmon.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 271 2019-06-05 17:30:30 +02:00
xgene-hwmon.c hwmon: (xgene-hwmon) use appropriate type for the latency value 2025-05-29 11:03:00 +02:00