Aaron Hill 129699bb8c drivers: thermal: int340x_thermal: Fix sysfs race condition
Changes since V1:
* Use dev_info instead of printk
* Use dev_warn instead of BUG_ON

Previously, sysfs_create_group was called before all initialization had
fully run - specifically, before pci_set_drvdata was called. Since the
sysctl group is visible to userspace as soon as sysfs_create_group
returns, a small window of time existed during which a process could read
from an uninitialized/partially-initialized device.

This commit moves the creation of the sysctl group to after all
initialized is completed. This ensures that it's impossible for
userspace to read from a sysctl file before initialization has fully
completed.

To catch any future regressions, I've added a check to ensure
that proc_thermal_emum_mode is never PROC_THERMAL_NONE when a process
tries to read from a sysctl file. Previously, the aforementioned race
condition could result in the 'else' branch
running while PROC_THERMAL_NONE was set,
leading to a null pointer deference.

Signed-off-by: Aaron Hill <aa1ronham@gmail.com>
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
2019-01-18 15:23:04 +08:00
..
2018-12-19 09:40:13 +01:00
2019-01-02 18:47:56 -08:00
2018-12-31 17:32:35 -08:00
2018-12-29 08:20:44 -07:00
2018-12-27 10:43:24 -08:00
2018-12-27 10:43:24 -08:00
2019-01-05 11:28:39 -08:00
2019-01-05 18:25:19 -08:00
2018-12-28 20:54:57 -08:00
2018-12-29 13:03:29 -08:00
2018-12-28 13:19:59 -08:00
2019-01-01 15:55:29 -08:00
2018-12-29 09:40:40 -08:00
2018-12-25 14:52:50 -08:00
2019-01-05 11:30:37 -08:00
2018-12-28 16:52:18 -08:00
2018-12-28 16:52:18 -08:00
2018-12-29 12:03:17 -08:00
2019-01-05 17:57:34 -08:00
2019-01-05 11:23:17 -08:00
2018-12-29 13:03:29 -08:00
2018-12-28 20:54:57 -08:00
2018-12-24 12:06:56 +01:00
2019-01-01 13:24:31 -08:00
2018-12-31 17:32:35 -08:00
2018-12-25 14:43:54 -08:00
2018-12-28 14:48:06 -08:00
2018-12-31 13:06:30 -08:00
2019-01-05 11:30:37 -08:00
2018-12-28 20:54:57 -08:00
2019-01-05 17:57:34 -08:00
2019-01-01 15:55:29 -08:00
2019-01-05 18:15:37 -08:00
2019-01-01 13:16:45 -08:00
2018-12-29 13:40:29 -08:00