[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] [POWERPC][XEN] implement the UP side of __flush_tlb_mask()



# HG changeset patch
# User Jimi Xenidis <jimix@xxxxxxxxxxxxxx>
# Node ID 067bf06057cc311f5c0141798cb3629828f908c1
# Parent  4a2a96e72076f84ad5c9166812c6f3dcea23214e
[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@xxxxxxxxxxxxxx>
Signed-off-by: Hollis Blanchard <hollisb@xxxxxxxxxx>
---
 xen/arch/powerpc/smp.c |   16 +++++++++++++++-
 1 files changed, 15 insertions(+), 1 deletion(-)

diff -r 4a2a96e72076 -r 067bf06057cc 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-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.