ia64/xen-unstable

changeset 12944:067bf06057cc

[POWERPC][XEN] implement the UP side of __flush_tlb_mask()
The SMP side will need to be done soone enough
Signed-off-by: Jimi Xenidis <jimix@watson.ibm.com>
Signed-off-by: Hollis Blanchard <hollisb@us.ibm.com>
author Jimi Xenidis <jimix@watson.ibm.com>
date Sat Oct 07 16:25:46 2006 -0400 (2006-10-07)
parents 4a2a96e72076
children 79bb96e0ba73
files xen/arch/powerpc/smp.c
line diff
     1.1 --- a/xen/arch/powerpc/smp.c	Sat Oct 07 15:38:27 2006 -0400
     1.2 +++ b/xen/arch/powerpc/smp.c	Sat Oct 07 16:25:46 2006 -0400
     1.3 @@ -29,7 +29,21 @@ int ht_per_core = 1;
     1.4  
     1.5  void __flush_tlb_mask(cpumask_t mask, unsigned long addr)
     1.6  {
     1.7 -    unimplemented();
     1.8 +    if (cpu_isset(smp_processor_id(), mask)) {
     1.9 +            cpu_clear(smp_processor_id(), mask);
    1.10 +            if (cpus_empty(mask)) {
    1.11 +                /* only local */
    1.12 +                if (addr == FLUSH_ALL_ADDRS)
    1.13 +                    local_flush_tlb();
    1.14 +                else
    1.15 +                    local_flush_tlb_one(addr);
    1.16 +                return;
    1.17 +            }
    1.18 +    }
    1.19 +    /* if we are still here and the mask is non-empty, then we need to
    1.20 +     * flush other TLBs so we flush em all */
    1.21 +    if (!cpus_empty(mask))
    1.22 +        unimplemented();
    1.23  }
    1.24  
    1.25  void smp_send_event_check_mask(cpumask_t mask)