smp.c (9a64e8e0ace51b309fdcff4b4754b3649250382a) | smp.c (5d2068da8d339e4dff8f9b9a1246e6a79e2949d8) |
---|---|
1/* 2 * SMP Support 3 * 4 * Copyright (C) 1999 Walt Drummond <drummond@valinux.com> 5 * Copyright (C) 1999, 2001, 2003 David Mosberger-Tang <davidm@hpl.hp.com> 6 * 7 * Lots of stuff stolen from arch/alpha/kernel/smp.c 8 * --- 248 unchanged lines hidden (view full) --- 257{ 258 unsigned short *counts = __ia64_per_cpu_var(shadow_flush_counts); 259 cpumask_t cpumask = xcpumask; 260 int mycpu, cpu, flush_mycpu = 0; 261 262 preempt_disable(); 263 mycpu = smp_processor_id(); 264 | 1/* 2 * SMP Support 3 * 4 * Copyright (C) 1999 Walt Drummond <drummond@valinux.com> 5 * Copyright (C) 1999, 2001, 2003 David Mosberger-Tang <davidm@hpl.hp.com> 6 * 7 * Lots of stuff stolen from arch/alpha/kernel/smp.c 8 * --- 248 unchanged lines hidden (view full) --- 257{ 258 unsigned short *counts = __ia64_per_cpu_var(shadow_flush_counts); 259 cpumask_t cpumask = xcpumask; 260 int mycpu, cpu, flush_mycpu = 0; 261 262 preempt_disable(); 263 mycpu = smp_processor_id(); 264 |
265 for_each_cpu_mask(cpu, cpumask) | 265 for_each_cpu(cpu, &cpumask) |
266 counts[cpu] = local_tlb_flush_counts[cpu].count & 0xffff; 267 268 mb(); | 266 counts[cpu] = local_tlb_flush_counts[cpu].count & 0xffff; 267 268 mb(); |
269 for_each_cpu_mask(cpu, cpumask) { | 269 for_each_cpu(cpu, &cpumask) { |
270 if (cpu == mycpu) 271 flush_mycpu = 1; 272 else 273 smp_send_local_flush_tlb(cpu); 274 } 275 276 if (flush_mycpu) 277 smp_local_flush_tlb(); 278 | 270 if (cpu == mycpu) 271 flush_mycpu = 1; 272 else 273 smp_send_local_flush_tlb(cpu); 274 } 275 276 if (flush_mycpu) 277 smp_local_flush_tlb(); 278 |
279 for_each_cpu_mask(cpu, cpumask) | 279 for_each_cpu(cpu, &cpumask) |
280 while(counts[cpu] == (local_tlb_flush_counts[cpu].count & 0xffff)) 281 udelay(FLUSH_DELAY); 282 283 preempt_enable(); 284} 285 286void 287smp_flush_tlb_all (void) --- 55 unchanged lines hidden --- | 280 while(counts[cpu] == (local_tlb_flush_counts[cpu].count & 0xffff)) 281 udelay(FLUSH_DELAY); 282 283 preempt_enable(); 284} 285 286void 287smp_flush_tlb_all (void) --- 55 unchanged lines hidden --- |