cpufreq: acpi-cpufreq: Don't set policy->related_cpus from .init()
With the addition of following patch:
fcf8058 cpufreq: Simplify cpufreq_add_dev()
cpufreq driver's .init() routine must initialize policy->cpus with
mask of all possible CPUs (Online + Offline) that share the clock.
Then the core would copy this mask onto policy->related_cpus and will
reset policy->cpus to carry only online cpus.
acpi-cpufreq driver wasn't updated with this assumption and so
sometimes when we try to hot[un]plug CPUs at run time, sysfs
directories get corrupted.
This patch fixes acpi-cpufreq driver against this corruption.
Reported-and-tested-by: Maciej Rutecki <maciej.rutecki@gmail.com>
Tested-by: Borislav Petkov <bp@suse.de>
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
	
	
This commit is contained in:
		
					parent
					
						
							
								187da1d97f
							
						
					
				
			
			
				commit
				
					
						aa77a52764
					
				
			
		
					 1 changed files with 0 additions and 2 deletions
				
			
		|  | @ -730,7 +730,6 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy) | |||
| 	    policy->shared_type == CPUFREQ_SHARED_TYPE_ANY) { | ||||
| 		cpumask_copy(policy->cpus, perf->shared_cpu_map); | ||||
| 	} | ||||
| 	cpumask_copy(policy->related_cpus, perf->shared_cpu_map); | ||||
| 
 | ||||
| #ifdef CONFIG_SMP | ||||
| 	dmi_check_system(sw_any_bug_dmi_table); | ||||
|  | @ -742,7 +741,6 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy) | |||
| 	if (check_amd_hwpstate_cpu(cpu) && !acpi_pstate_strict) { | ||||
| 		cpumask_clear(policy->cpus); | ||||
| 		cpumask_set_cpu(cpu, policy->cpus); | ||||
| 		cpumask_copy(policy->related_cpus, cpu_sibling_mask(cpu)); | ||||
| 		policy->shared_type = CPUFREQ_SHARED_TYPE_HW; | ||||
| 		pr_info_once(PFX "overriding BIOS provided _PSD data\n"); | ||||
| 	} | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Viresh Kumar
				Viresh Kumar