aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/mm/mmu_context_nohash.c
diff options
context:
space:
mode:
authorKumar Gala <galak@kernel.crashing.org>2009-08-04 23:33:32 -0400
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2009-08-19 20:25:12 -0400
commit67050b5c3e9992d98554bd224d5a7898cc4881ff (patch)
tree296c4d21e193c22e3e31f01799c0048f45df41c7 /arch/powerpc/mm/mmu_context_nohash.c
parentaf984b816530b4725b92e01ecfba7c5e3eab910d (diff)
powerpc/mm: Fix switch_mmu_context to iterate of the proper list of cpus
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>
Diffstat (limited to 'arch/powerpc/mm/mmu_context_nohash.c')
-rw-r--r--arch/powerpc/mm/mmu_context_nohash.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/arch/powerpc/mm/mmu_context_nohash.c b/arch/powerpc/mm/mmu_context_nohash.c
index 834436d6d6b..c2f93dc470e 100644
--- a/arch/powerpc/mm/mmu_context_nohash.c
+++ b/arch/powerpc/mm/mmu_context_nohash.c
@@ -190,7 +190,7 @@ static void context_check_map(void) { }
190 190
191void switch_mmu_context(struct mm_struct *prev, struct mm_struct *next) 191void switch_mmu_context(struct mm_struct *prev, struct mm_struct *next)
192{ 192{
193 unsigned int id, cpu = smp_processor_id(); 193 unsigned int i, id, cpu = smp_processor_id();
194 unsigned long *map; 194 unsigned long *map;
195 195
196 /* No lockless fast path .. yet */ 196 /* No lockless fast path .. yet */
@@ -269,9 +269,10 @@ void switch_mmu_context(struct mm_struct *prev, struct mm_struct *next)
269 local_flush_tlb_mm(next); 269 local_flush_tlb_mm(next);
270 270
271 /* XXX This clear should ultimately be part of local_flush_tlb_mm */ 271 /* XXX This clear should ultimately be part of local_flush_tlb_mm */
272 for (cpu = cpu_first_thread_in_core(cpu); 272 for (i = cpu_first_thread_in_core(cpu);
273 cpu <= cpu_last_thread_in_core(cpu); cpu++) 273 i <= cpu_last_thread_in_core(cpu); i++) {
274 __clear_bit(id, stale_map[cpu]); 274 __clear_bit(id, stale_map[i]);
275 }
275 } 276 }
276 277
277 /* Flick the MMU and release lock */ 278 /* Flick the MMU and release lock */