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