# HG changeset patch # User kaf24@firebug.cl.cam.ac.uk # Date 1117641002 0 # Node ID 44063d9f39e49627c11d15a1b7d529757133cb17 # Parent 79fea09c3b449623d387d25c4087936884ec2cce bitkeeper revision 1.1628.1.1 (429dd92aYeqV9tl4b0g_F_deORFVAQ) Fix sync_lazy_execstate functions to correctly sync the local cpu. Signed-off-by: Keir Fraser diff -r 79fea09c3b44 -r 44063d9f39e4 xen/arch/x86/domain.c --- a/xen/arch/x86/domain.c Wed Jun 01 14:44:07 2005 +0000 +++ b/xen/arch/x86/domain.c Wed Jun 01 15:50:02 2005 +0000 @@ -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<