linux/drivers/thermal/intel
Srinivas Pandruvada 117e4e5bd9 thermal: intel: Avoid updating unsupported THERM_STATUS_CLEAR mask bits
Some older processors don't allow BIT(13) and BIT(15) in the current
mask set by "THERM_STATUS_CLEAR_CORE_MASK". This results in:

unchecked MSR access error: WRMSR to 0x19c (tried to
write 0x000000000000aaa8) at rIP: 0xffffffff816f66a6
(throttle_active_work+0xa6/0x1d0)

To avoid unchecked MSR issues, check CPUID for each relevant feature and
use that information to set the supported feature bits only in the
"clear" mask for cores. Do the same for the analogous package mask set
by "THERM_STATUS_CLEAR_PKG_MASK".

Introduce functions thermal_intr_init_core_clear_mask() and
thermal_intr_init_pkg_clear_mask() to set core and package mask bits,
respectively. These functions are called during initialization.

Fixes: 6fe1e64b60 ("thermal: intel: Prevent accidental clearing of HFI status")
Reported-by: Rui Salvaterra <rsalvaterra@gmail.com>
Link: https://lore.kernel.org/lkml/cdf43fb423368ee3994124a9e8c9b4f8d00712c6.camel@linux.intel.com/T/
Tested-by: Rui Salvaterra <rsalvaterra@gmail.com>
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Cc: 6.2+ <stable@kernel.org> # 6.2+
[ rjw: Renamed 2 funtions and 2 static variables, edited subject and
  changelog ]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2023-04-11 18:12:19 +02:00
..
int340x_thermal thermal: intel: int340x: processor_thermal: Fix additional deadlock 2023-03-29 20:36:35 +02:00
intel_bxt_pmic_thermal.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
intel_hfi.c thermal: Remove core header inclusion from drivers 2023-02-15 17:29:48 +01:00
intel_hfi.h thermal: intel: hfi: Enable notification interrupt 2022-02-03 19:50:49 +01:00
intel_menlow.c thermal: intel: menlow: Update function descriptions 2023-01-18 21:02:36 +01:00
intel_pch_thermal.c thermal: intel: intel_pch: Drop struct board_info 2023-02-02 21:06:24 +01:00
intel_powerclamp.c thermal: intel: powerclamp: Fix cpumask and max_idle module parameters 2023-03-30 20:04:29 +02:00
intel_quark_dts_thermal.c thermal: intel: quark_dts: fix error pointer dereference 2023-03-01 19:28:57 +01:00
intel_soc_dts_iosf.c thermal: intel: Fix unsigned comparison with less than zero 2023-01-10 20:33:26 +01:00
intel_soc_dts_iosf.h thermal: intel: intel_soc_dts_iosf: Utilize for_each_set_clump8 macro 2019-12-04 19:44:12 -08:00
intel_soc_dts_thermal.c thermal: Convert to new X86 CPU match macros 2020-03-24 21:33:53 +01:00
intel_tcc_cooling.c thermal/intel/intel_tcc_cooling: Use Intel TCC library 2022-12-30 19:57:38 +01:00
intel_tcc.c thermal/intel: Introduce Intel TCC library 2022-12-30 19:57:38 +01:00
Kconfig thermal: intel: BXT_PMIC: select REGMAP instead of depending on it 2023-03-01 19:32:00 +01:00
Makefile thermal/intel: Introduce Intel TCC library 2022-12-30 19:57:38 +01:00
therm_throt.c thermal: intel: Avoid updating unsupported THERM_STATUS_CLEAR mask bits 2023-04-11 18:12:19 +02:00
thermal_interrupt.h thermal: intel: Protect clearing of thermal status bits 2022-11-23 20:09:06 +01:00
x86_pkg_temp_thermal.c Merge back other thermal control material for 6.3. 2023-01-24 21:12:49 +01:00