for_each_cpu() actually iterates across all possible CPUs. We've had mistakes
in the past where people were using for_each_cpu() where they should have been
iterating across only online or present CPUs. This is inefficient and
possibly buggy.
We're renaming for_each_cpu() to for_each_possible_cpu() to avoid this in the
future.
Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Len Brown <len.brown@intel.com>
retval = 0;
/* Call _PSD for all CPUs */
retval = 0;
/* Call _PSD for all CPUs */
+ for_each_possible_cpu(i) {
pr = processors[i];
if (!pr) {
/* Look only at processors in ACPI namespace */
pr = processors[i];
if (!pr) {
/* Look only at processors in ACPI namespace */
* Now that we have _PSD data from all CPUs, lets setup P-state
* domain info.
*/
* Now that we have _PSD data from all CPUs, lets setup P-state
* domain info.
*/
+ for_each_possible_cpu(i) {
pr = processors[i];
if (!pr)
continue;
pr = processors[i];
if (!pr)
continue;
}
cpus_clear(covered_cpus);
}
cpus_clear(covered_cpus);
+ for_each_possible_cpu(i) {
pr = processors[i];
if (!pr)
continue;
pr = processors[i];
if (!pr)
continue;
pr->performance->shared_type = CPUFREQ_SHARED_TYPE_ANY;
}
pr->performance->shared_type = CPUFREQ_SHARED_TYPE_ANY;
}
+ for_each_possible_cpu(j) {
+ for_each_possible_cpu(j) {
ACPI_DEBUG_PRINT((ACPI_DB_ERROR, "Error while parsing _PSD domain information. Assuming no coordination\n"));
}
ACPI_DEBUG_PRINT((ACPI_DB_ERROR, "Error while parsing _PSD domain information. Assuming no coordination\n"));
}
+ for_each_possible_cpu(i) {
pr = processors[i];
if (!pr || !pr->performance)
continue;
pr = processors[i];
if (!pr || !pr->performance)
continue;