powerpc/mm: Fix switch_mmu_context to iterate of the proper list of cpus
authorKumar Gala <galak@kernel.crashing.org>
Wed, 5 Aug 2009 03:33:32 +0000 (22:33 -0500)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Thu, 20 Aug 2009 00:25:12 +0000 (10:25 +1000)
Introduced a temporary variable into our iterating over the list cpus
that are threads on the same core.  For some reason Ben forgot how for
loops work.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/mm/mmu_context_nohash.c

index 834436d..c2f93dc 100644 (file)
@@ -190,7 +190,7 @@ static void context_check_map(void) { }
 
 void switch_mmu_context(struct mm_struct *prev, struct mm_struct *next)
 {
-       unsigned int id, cpu = smp_processor_id();
+       unsigned int i, id, cpu = smp_processor_id();
        unsigned long *map;
 
        /* No lockless fast path .. yet */
@@ -269,9 +269,10 @@ void switch_mmu_context(struct mm_struct *prev, struct mm_struct *next)
                local_flush_tlb_mm(next);
 
                /* XXX This clear should ultimately be part of local_flush_tlb_mm */
-               for (cpu = cpu_first_thread_in_core(cpu);
-                    cpu <= cpu_last_thread_in_core(cpu); cpu++)
-                       __clear_bit(id, stale_map[cpu]);
+               for (i = cpu_first_thread_in_core(cpu);
+                    i <= cpu_last_thread_in_core(cpu); i++) {
+                       __clear_bit(id, stale_map[i]);
+               }
        }
 
        /* Flick the MMU and release lock */