|
|
|
|
|
|
|
|
|
|
xen-changelog
[Xen-changelog] [xen-unstable] [POWERPC][XEN] implement the UP side of _
# 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
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [Xen-changelog] [xen-unstable] [POWERPC][XEN] implement the UP side of __flush_tlb_mask(),
Xen patchbot-unstable <=
|
|
|
|
|