aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>2005-06-01 15:50:09 +0000
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>2005-06-01 15:50:09 +0000
commit2f7ddb37506671e2a64a1af8050d48e5b3057ea3 (patch)
treeeb23c814de1e15681e7e0eff590ffcc9d7efdfe7
parent0a461095daeffe7d114c3e7ba83cda3af76decda (diff)
parenta1e357903c931ed4a566e655c5d3e9a4f31d344e (diff)
downloadxen-2f7ddb37506671e2a64a1af8050d48e5b3057ea3.tar.gz
xen-2f7ddb37506671e2a64a1af8050d48e5b3057ea3.tar.bz2
xen-2f7ddb37506671e2a64a1af8050d48e5b3057ea3.zip
bitkeeper revision 1.1630 (429dd931IfVZoLDG_59VLA9fanmtuQ)
Merge firebug.cl.cam.ac.uk:/auto/groups/xeno-xenod/BK/xen-unstable.bk into firebug.cl.cam.ac.uk:/local/scratch/kaf24/xen-unstable.bk
-rw-r--r--xen/arch/x86/domain.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 4d49724c4e..25f0125609 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -819,12 +819,17 @@ int __sync_lazy_execstate(void)
void sync_lazy_execstate_cpuset(unsigned long cpuset)
{
- flush_tlb_mask(cpuset);
+ if ( cpuset & (1 << smp_processor_id()) )
+ (void)__sync_lazy_execstate();
+ /* Other cpus call __sync_lazy_execstate from flush ipi handler. */
+ flush_tlb_mask(cpuset & ~(1 << smp_processor_id()));
}
void sync_lazy_execstate_all(void)
{
- flush_tlb_all();
+ __sync_lazy_execstate();
+ /* Other cpus call __sync_lazy_execstate from flush ipi handler. */
+ flush_tlb_mask(((1<<num_online_cpus())-1) & ~(1 << smp_processor_id()));
}
unsigned long __hypercall_create_continuation(