# HG changeset patch
# User Jimi Xenidis <[EMAIL PROTECTED]>
# Node ID e30376a0abc39117f604b0f6cc7817deb3eb9079
# Parent  aebee004e517fb391c1345749c71a22861ec254d
[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 <[EMAIL PROTECTED]>
---
 xen/arch/powerpc/smp.c |   16 +++++++++++++++-
 1 files changed, 15 insertions(+), 1 deletion(-)

diff -r aebee004e517 -r e30376a0abc3 xen/arch/powerpc/smp.c
--- a/xen/arch/powerpc/smp.c    Sat Oct 07 15:38:27 2006 -0400
+++ b/xen/arch/powerpc/smp.c    Sat Oct 07 16:25:46 2006 -0400
@@ -29,7 +29,21 @@ int ht_per_core = 1;
 
 void __flush_tlb_mask(cpumask_t mask, unsigned long addr)
 {
-    unimplemented();
+    if (cpu_isset(smp_processor_id(), mask)) {
+            cpu_clear(smp_processor_id(), mask);
+            if (cpus_empty(mask)) {
+                /* only local */
+                if (addr == FLUSH_ALL_ADDRS)
+                    local_flush_tlb();
+                else
+                    local_flush_tlb_one(addr);
+                return;
+            }
+    }
+    /* if we are still here and the mask is non-empty, then we need to
+     * flush other TLBs so we flush em all */
+    if (!cpus_empty(mask))
+        unimplemented();
 }
 
 void smp_send_event_check_mask(cpumask_t mask)

_______________________________________________
Xen-ppc-devel mailing list
Xen-ppc-devel@lists.xensource.com
http://lists.xensource.com/xen-ppc-devel

Reply via email to