From: djm@kirby.fc.hp.com Date: Fri, 13 Jan 2006 16:36:47 +0000 (-0600) Subject: correct implementation of flush_tlb_mask needed to reenable CONFIG_SMP X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~16541^2~38^2~7 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=cafde138a1bc6bb3c6b1e329069204d19d40a3bc;p=xen.git correct implementation of flush_tlb_mask needed to reenable CONFIG_SMP Signed-off-by: Tristan Gingold --- diff --git a/xen/arch/ia64/linux-xen/smp.c b/xen/arch/ia64/linux-xen/smp.c index 97f66a045c..d667a428b4 100644 --- a/xen/arch/ia64/linux-xen/smp.c +++ b/xen/arch/ia64/linux-xen/smp.c @@ -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