# HG changeset patch # User tristan.gingold@xxxxxxxx # Node ID dbdf2e366d1b7fddab37aac5b4a30a92c0081d20 # Parent 1507c5499a92a7701db9cc3b0bf9ac5fb3fa8ee2 flush_tlb_mask: written for CONFIG_SMP. Signed-off-by: Tristan Gingold diff -r 1507c5499a92 -r dbdf2e366d1b xen/arch/ia64/linux-xen/smp.c --- a/xen/arch/ia64/linux-xen/smp.c Fri Jan 6 18:39:28 2006 +++ b/xen/arch/ia64/linux-xen/smp.c Fri Jan 13 09:43:31 2006 @@ -57,8 +57,21 @@ void flush_tlb_mask(cpumask_t mask) { #ifdef CONFIG_SMP - printf("flush_tlb_mask called, not implemented for SMP\n"); - dummy(); + int cpu; + + cpu = smp_processor_id(); + if (cpu_isset (cpu, mask)) { + cpu_clear(cpu, mask); + local_flush_tlb_all (); + } + + if (cpus_empty(mask)) + return; + + for (cpu = 0; cpu < NR_CPUS; ++cpu) + if (cpu_isset(cpu, mask)) + smp_call_function_single + (cpu, (void (*)(void *))local_flush_tlb_all, NULL, 1, 1); #endif } //#if CONFIG_SMP || IA64