ACPI: use for_each_possible_cpu() instead of for_each_cpu()
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>
diff --git a/drivers/acpi/processor_perflib.c b/drivers/acpi/processor_perflib.c
index 431a845..cf61670 100644
--- a/drivers/acpi/processor_perflib.c
+++ b/drivers/acpi/processor_perflib.c
@@ -628,7 +628,7 @@
retval = 0;
/* Call _PSD for all CPUs */
- for_each_cpu(i) {
+ for_each_possible_cpu(i) {
pr = processors[i];
if (!pr) {
/* Look only at processors in ACPI namespace */
@@ -659,7 +659,7 @@
* Now that we have _PSD data from all CPUs, lets setup P-state
* domain info.
*/
- for_each_cpu(i) {
+ for_each_possible_cpu(i) {
pr = processors[i];
if (!pr)
continue;
@@ -680,7 +680,7 @@
}
cpus_clear(covered_cpus);
- for_each_cpu(i) {
+ for_each_possible_cpu(i) {
pr = processors[i];
if (!pr)
continue;
@@ -704,7 +704,7 @@
pr->performance->shared_type = CPUFREQ_SHARED_TYPE_ANY;
}
- for_each_cpu(j) {
+ for_each_possible_cpu(j) {
if (i == j)
continue;
@@ -733,7 +733,7 @@
count++;
}
- for_each_cpu(j) {
+ for_each_possible_cpu(j) {
if (i == j)
continue;
@@ -757,7 +757,7 @@
ACPI_DEBUG_PRINT((ACPI_DB_ERROR, "Error while parsing _PSD domain information. Assuming no coordination\n"));
}
- for_each_cpu(i) {
+ for_each_possible_cpu(i) {
pr = processors[i];
if (!pr || !pr->performance)
continue;