]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/commitdiff
cpumask: prepare for iterators to only go to nr_cpu_ids/nr_cpumask_bits.: sparc
authorRusty Russell <rusty@rustcorp.com.au>
Mon, 16 Mar 2009 04:10:24 +0000 (14:40 +1030)
committerRusty Russell <rusty@rustcorp.com.au>
Mon, 16 Mar 2009 04:10:24 +0000 (14:40 +1030)
Impact: cleanup, futureproof

In fact, all cpumask ops will only be valid (in general) for bit
numbers < nr_cpu_ids.  So use that instead of NR_CPUS in various
places.

This is always safe: no cpu number can be >= nr_cpu_ids, and
nr_cpu_ids is initialized to NR_CPUS at boot.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Mike Travis <travis@sgi.com>
Acked-by: Ingo Molnar <mingo@elte.hu>
arch/sparc/kernel/smp_32.c
arch/sparc/kernel/sun4d_smp.c
arch/sparc/kernel/sun4m_smp.c
arch/sparc/mm/srmmu.c

index 88f43c5ba384d07618c1f11d77a1b376d5f05fa7..be1ae37e7733b3281d6697ed02116bac3d4aa0f2 100644 (file)
@@ -70,13 +70,12 @@ void __init smp_cpus_done(unsigned int max_cpus)
        extern void smp4m_smp_done(void);
        extern void smp4d_smp_done(void);
        unsigned long bogosum = 0;
-       int cpu, num;
+       int cpu, num = 0;
 
-       for (cpu = 0, num = 0; cpu < NR_CPUS; cpu++)
-               if (cpu_online(cpu)) {
-                       num++;
-                       bogosum += cpu_data(cpu).udelay_val;
-               }
+       for_each_online_cpu(cpu) {
+               num++;
+               bogosum += cpu_data(cpu).udelay_val;
+       }
 
        printk("Total of %d processors activated (%lu.%02lu BogoMIPS).\n",
                num, bogosum/(500000/HZ),
index e85e6aa1abd876b4db1da28bc2c2108212f72fac..54fb02468f0d57ef00ce78c610609ba43d0c1702 100644 (file)
@@ -228,11 +228,10 @@ void __init smp4d_smp_done(void)
        /* setup cpu list for irq rotation */
        first = 0;
        prev = &first;
-       for (i = 0; i < NR_CPUS; i++)
-               if (cpu_online(i)) {
-                       *prev = i;
-                       prev = &cpu_data(i).next;
-               }
+       for_each_online_cpu(i) {
+               *prev = i;
+               prev = &cpu_data(i).next;
+       }
        *prev = first;
        local_flush_cache_all();
 
index 2a8f4fc4056d7a48c32a0e3a7f9ca5a7330f0867..960b113d0006f4ff61de665c2383dd4b522a4622 100644 (file)
@@ -186,11 +186,9 @@ void __init smp4m_smp_done(void)
        /* setup cpu list for irq rotation */
        first = 0;
        prev = &first;
-       for (i = 0; i < NR_CPUS; i++) {
-               if (cpu_online(i)) {
-                       *prev = i;
-                       prev = &cpu_data(i).next;
-               }
+       for_each_online_cpu(i) {
+               *prev = i;
+               prev = &cpu_data(i).next;
        }
        *prev = first;
        local_flush_cache_all();
index fe7ed08390bb720e1c4be141aa5a072f58b843ec..06c9a7d98206f0256c23a281381bf2d6ab7ca441 100644 (file)
@@ -1425,7 +1425,7 @@ static void __init init_vac_layout(void)
                                min_line_size = vac_line_size;
                        //FIXME: cpus not contiguous!!
                        cpu++;
-                       if (cpu >= NR_CPUS || !cpu_online(cpu))
+                       if (cpu >= nr_cpu_ids || !cpu_online(cpu))
                                break;
 #else
                        break;