Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge branch 'thermal-intel'

Merge an x86_pkg_temp_thermal Intel thermal driver fix (Zhang Rui).

* thermal-intel:
thermal: intel: x86_pkg_temp_thermal: Add lower bound check for sysfs input

+5 -3
+5 -3
drivers/thermal/intel/x86_pkg_temp_thermal.c
··· 124 124 { 125 125 struct zone_device *zonedev = thermal_zone_device_priv(tzd); 126 126 u32 l, h, mask, shift, intr; 127 - int tj_max, ret; 127 + int tj_max, val, ret; 128 128 129 129 tj_max = intel_tcc_get_tjmax(zonedev->cpu); 130 130 if (tj_max < 0) 131 131 return tj_max; 132 132 tj_max *= 1000; 133 133 134 - if (trip >= MAX_NUMBER_OF_TRIPS || temp >= tj_max) 134 + val = (tj_max - temp)/1000; 135 + 136 + if (trip >= MAX_NUMBER_OF_TRIPS || val < 0 || val > 0x7f) 135 137 return -EINVAL; 136 138 137 139 ret = rdmsr_on_cpu(zonedev->cpu, MSR_IA32_PACKAGE_THERM_INTERRUPT, ··· 158 156 if (!temp) { 159 157 l &= ~intr; 160 158 } else { 161 - l |= (tj_max - temp)/1000 << shift; 159 + l |= val << shift; 162 160 l |= intr; 163 161 } 164 162