[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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |