ACPI: use for_each_possible_cpu() instead of for_each_cpu()
authorKAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Thu, 27 Apr 2006 09:25:00 +0000 (05:25 -0400)
committerLen Brown <len.brown@intel.com>
Sun, 14 May 2006 03:11:29 +0000 (23:11 -0400)
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>
drivers/acpi/processor_perflib.c

index 431a8450346bb19edceedf270ca2bc3dc970bc22..cf6167003d8a2e99deceef417fd604c4572e5e03 100644 (file)
@@ -628,7 +628,7 @@ int acpi_processor_preregister_performance(
        retval = 0;
 
        /* Call _PSD for all CPUs */
        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 */
                pr = processors[i];
                if (!pr) {
                        /* Look only at processors in ACPI namespace */
@@ -659,7 +659,7 @@ int acpi_processor_preregister_performance(
         * 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_cpu(i) {
+       for_each_possible_cpu(i) {
                pr = processors[i];
                if (!pr)
                        continue;
                pr = processors[i];
                if (!pr)
                        continue;
@@ -680,7 +680,7 @@ int acpi_processor_preregister_performance(
        }
 
        cpus_clear(covered_cpus);
        }
 
        cpus_clear(covered_cpus);
-       for_each_cpu(i) {
+       for_each_possible_cpu(i) {
                pr = processors[i];
                if (!pr)
                        continue;
                pr = processors[i];
                if (!pr)
                        continue;
@@ -704,7 +704,7 @@ int acpi_processor_preregister_performance(
                        pr->performance->shared_type = CPUFREQ_SHARED_TYPE_ANY;
                }
 
                        pr->performance->shared_type = CPUFREQ_SHARED_TYPE_ANY;
                }
 
-               for_each_cpu(j) {
+               for_each_possible_cpu(j) {
                        if (i == j)
                                continue;
 
                        if (i == j)
                                continue;
 
@@ -733,7 +733,7 @@ int acpi_processor_preregister_performance(
                        count++;
                }
 
                        count++;
                }
 
-               for_each_cpu(j) {
+               for_each_possible_cpu(j) {
                        if (i == j)
                                continue;
 
                        if (i == j)
                                continue;
 
@@ -757,7 +757,7 @@ err_ret:
                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_cpu(i) {
+       for_each_possible_cpu(i) {
                pr = processors[i];
                if (!pr || !pr->performance)
                        continue;
                pr = processors[i];
                if (!pr || !pr->performance)
                        continue;