mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 19:51:31 -04:00
x86/hwmon: fix initialization of coretemp
Using cpuid_eax() to determine feature availability on other than the current CPU is invalid. And feature availability should also be checked in the hotplug code path. Signed-off-by: Jan Beulich <[email protected]> Cc: Rudolf Marek <[email protected]> Cc: Fenghua Yu <[email protected]> Signed-off-by: Guenter Roeck <[email protected]>
This commit is contained in:
parent
d172132f35
commit
a46590533a
3 changed files with 15 additions and 16 deletions
|
|
@ -423,9 +423,18 @@ static int __cpuinit coretemp_device_add(unsigned int cpu)
|
|||
int err;
|
||||
struct platform_device *pdev;
|
||||
struct pdev_entry *pdev_entry;
|
||||
#ifdef CONFIG_SMP
|
||||
struct cpuinfo_x86 *c = &cpu_data(cpu);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* CPUID.06H.EAX[0] indicates whether the CPU has thermal
|
||||
* sensors. We check this bit only, all the early CPUs
|
||||
* without thermal sensors will be filtered out.
|
||||
*/
|
||||
if (!cpu_has(c, X86_FEATURE_DTS)) {
|
||||
printk(KERN_INFO DRVNAME ": CPU (model=0x%x)"
|
||||
" has no thermal sensor.\n", c->x86_model);
|
||||
return 0;
|
||||
}
|
||||
|
||||
mutex_lock(&pdev_list_mutex);
|
||||
|
||||
|
|
@ -527,20 +536,8 @@ static int __init coretemp_init(void)
|
|||
if (err)
|
||||
goto exit;
|
||||
|
||||
for_each_online_cpu(i) {
|
||||
struct cpuinfo_x86 *c = &cpu_data(i);
|
||||
/*
|
||||
* CPUID.06H.EAX[0] indicates whether the CPU has thermal
|
||||
* sensors. We check this bit only, all the early CPUs
|
||||
* without thermal sensors will be filtered out.
|
||||
*/
|
||||
if (c->cpuid_level >= 6 && (cpuid_eax(0x06) & 0x01))
|
||||
coretemp_device_add(i);
|
||||
else {
|
||||
printk(KERN_INFO DRVNAME ": CPU (model=0x%x)"
|
||||
" has no thermal sensor.\n", c->x86_model);
|
||||
}
|
||||
}
|
||||
for_each_online_cpu(i)
|
||||
coretemp_device_add(i);
|
||||
|
||||
#ifndef CONFIG_HOTPLUG_CPU
|
||||
if (list_empty(&pdev_list)) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue