android_kernel_motorola_sm6375/drivers/hwmon
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Robin Murphy 4000384684 hwmon: (coretemp) Simplify platform device handling
[ Upstream commit 6d03bbff456befeccdd4d663177c4d6c75d0c4ff ]

Coretemp's platform driver is unconventional. All the real work is done
globally by the initcall and CPU hotplug notifiers, while the "driver"
effectively just wraps an allocation and the registration of the hwmon
interface in a long-winded round-trip through the driver core.  The whole
logic of dynamically creating and destroying platform devices to bring
the interfaces up and down is error prone, since it assumes
platform_device_add() will synchronously bind the driver and set drvdata
before it returns, thus results in a NULL dereference if drivers_autoprobe
is turned off for the platform bus. Furthermore, the unusual approach of
doing that from within a CPU hotplug notifier, already commented in the
code that it deadlocks suspend, also causes lockdep issues for other
drivers or subsystems which may want to legitimately register a CPU
hotplug notifier from a platform bus notifier.

All of these issues can be solved by ripping this unusual behaviour out
completely, simply tying the platform devices to the lifetime of the
module itself, and directly managing the hwmon interfaces from the
hotplug notifiers. There is a slight user-visible change in that
/sys/bus/platform/drivers/coretemp will no longer appear, and
/sys/devices/platform/coretemp.n will remain present if package n is
hotplugged off, but hwmon users should really only be looking for the
presence of the hwmon interfaces, whose behaviour remains unchanged.

Link: https://lore.kernel.org/lkml/20220922101036.87457-1-janusz.krzysztofik@linux.intel.com/
Link: https://gitlab.freedesktop.org/drm/intel/issues/6641
Signed-off-by: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
Link: https://lore.kernel.org/r/20230103114620.15319-1-janusz.krzysztofik@linux.intel.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-03-11 16:43:57 +01:00
..
occ hwmon: (occ) Fix poll rate limiting 2021-05-19 10:08:30 +02:00
pmbus hwmon: (pmbus) Add Vin unit off handling 2022-04-15 14:18:05 +02:00
ab8500.c
abituguru.c
abituguru3.c
abx500.c
abx500.h
acpi_power_meter.c hwmon: (acpi_power_meter) Fix potential memory leak in acpi_power_meter_add() 2020-07-09 09:37:53 +02:00
ad7314.c
ad7414.c
ad7418.c
adc128d818.c
adcxx.c
adm1021.c
adm1025.c
adm1026.c
adm1029.c
adm1031.c
adm9240.c
ads7828.c
ads7871.c
adt7x10.c
adt7x10.h
adt7310.c
adt7410.c
adt7411.c
adt7462.c hwmon: (adt7462) Fix an error return in ADT7462_REG_VOLT() 2020-03-12 13:00:30 +01:00
adt7470.c hwmon: (adt7470) Fix warning on module removal 2022-05-12 12:23:44 +02:00
adt7475.c hwmon: (adt7475) Make volt2reg return same reg as reg2volt input 2020-01-29 16:45:24 +01:00
amc6821.c
applesmc.c hwmon: (applesmc) check status earlier. 2020-09-09 19:12:20 +02:00
as370-hwmon.c hwmon: (as370-hwmon) fix devm_platform_ioremap_resource.cocci warnings 2019-09-03 12:47:17 -07:00
asb100.c hwmon: (asb100) convert to i2c_new_dummy_device 2019-09-03 12:47:17 -07:00
asc7621.c
aspeed-pwm-tacho.c hwmon: (aspeed-pwm-tacho) Avoid possible buffer overflow 2020-07-29 10:18:37 +02:00
asus_atk0110.c
atxp1.c
coretemp.c hwmon: (coretemp) Simplify platform device handling 2023-03-11 16:43:57 +01:00
da9052-hwmon.c hwmon: (da9052) Synchronize access with mfd 2020-05-20 08:20:26 +02:00
da9055-hwmon.c
dell-smm-hwmon.c hwmon: (dell-smm) Speed up setting of fan speed 2022-02-16 12:52:53 +01:00
dme1737.c
ds620.c
ds1621.c
emc6w201.c
emc1403.c
emc2103.c hwmon: (emc2103) fix unable to change fan pwm1_enable attribute 2020-07-22 09:33:14 +02:00
f71805f.c
f71882fg.c hwmon: (f71882fg) Fix negative temperature 2022-05-18 09:47:26 +02:00
f75375s.c
fam15h_power.c
fschmd.c
ftsteutates.c
g760a.c
g762.c
gl518sm.c
gl520sm.c
gpio-fan.c hwmon: (gpio-fan) Fix array out of bounds access 2022-09-15 12:04:52 +02:00
hih6130.c
hwmon-vid.c
hwmon.c Revert "hwmon: Make chip parameter for with_info API mandatory" 2022-06-25 12:44:36 +02:00
i5k_amb.c
i5500_temp.c hwmon: (i5500_temp) fix missing pci_disable_device() 2022-12-08 11:23:02 +01:00
ibmaem.c hwmon: (ibmaem) don't call platform_device_del() if platform_device_add() fails 2022-07-07 17:36:50 +02:00
ibmpex.c hwmon: (ibmpex) Fix possible UAF when ibmpex_register_bmc() fails 2022-12-08 11:23:02 +01:00
ibmpowernv.c
iio_hwmon.c hwmon: (iio_hwmon) Enable power exporting from IIO 2019-09-03 12:47:17 -07:00
ina2xx.c
ina209.c
ina3221.c hwmon: (ina3221) Fix PM usage counter unbalance in ina3221_write_enable 2020-12-30 11:51:17 +01:00
it87.c
jc42.c hwmon: (jc42) Fix name to have no illegal characters 2020-05-02 08:48:59 +02:00
k8temp.c hwmon: (k8temp) update to use new hwmon registration API 2019-09-03 12:47:17 -07:00
k10temp.c hwmon: (k10temp) Add AMD family 17h model 60h PCI match 2020-06-22 09:31:19 +02:00
Kconfig hwmon: (ltq-cputemp) restrict it to SOC_XWAY 2022-05-18 09:47:25 +02:00
lineage-pem.c
lm63.c
lm70.c
lm73.c
lm75.c hwmon: (lm75) Aproximate sample times to data-sheet values 2019-09-04 11:06:47 -07:00
lm75.h
lm77.c
lm78.c
lm80.c Revert "hwmon: (lm80) fix a missing check of bus read in lm80 probe" 2021-05-26 12:05:18 +02:00
lm83.c
lm85.c
lm87.c
lm90.c hwmon: (lm90) Mark alert as broken for MAX6654 2022-02-01 17:24:38 +01:00
lm92.c
lm93.c
lm95234.c
lm95241.c
lm95245.c
lochnagar-hwmon.c
ltc2945.c hwmon: (ltc2945) Handle error case in ltc2945_value_store 2023-03-11 16:43:47 +01:00
ltc2990.c hwmon/ltc2990: Generalise DT to fwnode support 2019-09-03 12:47:17 -07:00
ltc4151.c
ltc4215.c
ltc4222.c
ltc4245.c
ltc4260.c
ltc4261.c
ltq-cputemp.c
Makefile Main MIPS changes for v5.4: 2019-09-22 09:30:30 -07:00
max197.c
max1111.c
max1619.c
max1668.c
max6621.c
max6639.c
max6642.c
max6650.c
max6697.c hwmon: (max6697) Make sure the OVERT mask is set correctly 2020-07-09 09:37:53 +02:00
max16065.c
max31722.c hwmon: (max31722) Remove non-standard ACPI device IDs 2021-07-14 16:53:23 +02:00
max31790.c hwmon: (max31790) Fix fan speed reporting for fan7..12 2021-07-14 16:53:23 +02:00
mc13783-adc.c
mcp3021.c
menf21bmc_hwmon.c
mlxreg-fan.c hwmon: (mlxreg-fan) Return zero speed for broken fan 2023-03-11 16:43:47 +01:00
nct6683.c
nct6775.c hwmon: (nct6775) Accept PECI Calibration as temperature source for NCT6798D 2020-07-29 10:18:39 +02:00
nct7802.c hwmon: (nct7802) Fix non-working alarm on voltages 2020-01-29 16:45:30 +01:00
nct7904.c hwmon: (nct7904) Correct divide by 0 2020-09-03 11:26:54 +02:00
npcm750-pwm-fan.c hwmon: (npcm750-pwm-fan) Remove dev_err() usage after platform_get_irq() 2019-09-03 12:47:17 -07:00
nsa320-hwmon.c
ntc_thermistor.c
pc87360.c
pc87427.c
pcf8591.c
powr1220.c
pwm-fan.c hwmon: (pwm-fan) Ensure that calculation doesn't discard big period values 2021-01-19 18:26:15 +01:00
raspberrypi-hwmon.c hwmon: (raspberrypi) update MODULE_AUTHOR() email address 2019-09-03 12:47:17 -07:00
s3c-hwmon.c
sch56xx-common.c hwmon: (sch56xx-common) Replace WDOG_ACTIVE with WDOG_HW_RUNNING 2022-04-15 14:18:04 +02:00
sch56xx-common.h
sch5627.c
sch5636.c
scmi-hwmon.c hwmon: (scmi) Fix potential buffer overflow in scmi_hwmon_probe() 2020-07-29 10:18:39 +02:00
scpi-hwmon.c hwmon: (scpi-hwmon) shows the negative temperature properly 2021-06-23 14:41:27 +02:00
sht3x.c
sht15.c
sht21.c
shtc1.c hwmon: (shtc1) add support for the SHTC3 sensor 2019-09-10 11:42:56 -07:00
sis5595.c
smm665.c It's a somewhat calmer cycle for docs this time, as the churn of the mass 2019-09-17 16:22:26 -07:00
smsc47b397.c
smsc47m1.c
smsc47m192.c
stts751.c
tc74.c
tc654.c
thmc50.c
tmp102.c
tmp103.c
tmp108.c
tmp401.c hwmon: (tmp401) Add OF device ID table 2022-05-18 09:47:24 +02:00
tmp421.c hwmon: (tmp421) fix rounding for negative values 2021-10-06 15:42:33 +02:00
ultra45_env.c
vexpress-hwmon.c
via-cputemp.c
via686a.c
vt1211.c
vt8231.c
w83l785ts.c
w83l786ng.c
w83627ehf.c
w83627hf.c
w83773g.c
w83781d.c hwmon: (w83781d) convert to i2c_new_dummy_device 2019-09-03 12:47:17 -07:00
w83791d.c hwmon: (w83791d) Fix NULL pointer dereference by removing unnecessary structure field 2021-10-06 15:42:31 +02:00
w83792d.c hwmon: (w83792d) Fix NULL pointer dereference by removing unnecessary structure field 2021-10-06 15:42:30 +02:00
w83793.c hwmon: (w83793) Fix NULL pointer dereference by removing unnecessary structure field 2021-10-06 15:42:30 +02:00
w83795.c
wm831x-hwmon.c
wm8350-hwmon.c
xgene-hwmon.c