Description
In the Linux kernel, the following vulnerability has been resolved: hwmon: (coretemp) Simplify platform device handling 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.
Product status
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 before 4000384684f612b3645a944f6acde0e65ac370b8
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 before 5735878a7b7db7e9ce731cb36cec298a9de67549
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 before 52ea47a0ddfbc5fe05e873d3f5a59db4ba3e03fe
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 before 8fcdbc4bc01365f4b10fed7db544a3149e3054fd
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 before c57a8d14d7880521150ee801d53a0a64fdffd9c8
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 before 6d03bbff456befeccdd4d663177c4d6c75d0c4ff
5.4.235
5.10.173
5.15.99
6.1.16
6.2.3
6.3
References
git.kernel.org/...c/4000384684f612b3645a944f6acde0e65ac370b8
git.kernel.org/...c/5735878a7b7db7e9ce731cb36cec298a9de67549
git.kernel.org/...c/52ea47a0ddfbc5fe05e873d3f5a59db4ba3e03fe
git.kernel.org/...c/8fcdbc4bc01365f4b10fed7db544a3149e3054fd
git.kernel.org/...c/c57a8d14d7880521150ee801d53a0a64fdffd9c8
git.kernel.org/...c/6d03bbff456befeccdd4d663177c4d6c75d0c4ff