ia64/xen-unstable
changeset 5261:44063d9f39e4
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 <keir@xensource.com>
Fix sync_lazy_execstate functions to correctly sync the local cpu.
Signed-off-by: Keir Fraser <keir@xensource.com>
author | kaf24@firebug.cl.cam.ac.uk |
---|---|
date | Wed Jun 01 15:50:02 2005 +0000 (2005-06-01) |
parents | 79fea09c3b44 |
children | d65ff8dafa15 |
files | xen/arch/x86/domain.c |
line diff
1.1 --- a/xen/arch/x86/domain.c Wed Jun 01 14:44:07 2005 +0000 1.2 +++ b/xen/arch/x86/domain.c Wed Jun 01 15:50:02 2005 +0000 1.3 @@ -819,12 +819,17 @@ int __sync_lazy_execstate(void) 1.4 1.5 void sync_lazy_execstate_cpuset(unsigned long cpuset) 1.6 { 1.7 - flush_tlb_mask(cpuset); 1.8 + if ( cpuset & (1 << smp_processor_id()) ) 1.9 + (void)__sync_lazy_execstate(); 1.10 + /* Other cpus call __sync_lazy_execstate from flush ipi handler. */ 1.11 + flush_tlb_mask(cpuset & ~(1 << smp_processor_id())); 1.12 } 1.13 1.14 void sync_lazy_execstate_all(void) 1.15 { 1.16 - flush_tlb_all(); 1.17 + __sync_lazy_execstate(); 1.18 + /* Other cpus call __sync_lazy_execstate from flush ipi handler. */ 1.19 + flush_tlb_mask(((1<<num_online_cpus())-1) & ~(1 << smp_processor_id())); 1.20 } 1.21 1.22 unsigned long __hypercall_create_continuation(