debuggers.hg
changeset 17558:7689e311f3b5
shadow: Fix TLB flushing in the second pass of sh_prealloc() in the
case where multiple vcpus use the same pagetables.
Signed-off-by: Tim Deegan <Tim.Deegan@citrix.com>
case where multiple vcpus use the same pagetables.
Signed-off-by: Tim Deegan <Tim.Deegan@citrix.com>
author | Keir Fraser <keir.fraser@citrix.com> |
---|---|
date | Fri Apr 25 13:27:19 2008 +0100 (2008-04-25) |
parents | 97da69831384 |
children | 6032730df2eb |
files | xen/arch/x86/mm/shadow/common.c |
line diff
1.1 --- a/xen/arch/x86/mm/shadow/common.c Thu Apr 24 14:33:42 2008 +0100 1.2 +++ b/xen/arch/x86/mm/shadow/common.c Fri Apr 25 13:27:19 2008 +0100 1.3 @@ -781,7 +781,6 @@ static void _shadow_prealloc( 1.4 struct vcpu *v, *v2; 1.5 struct list_head *l, *t; 1.6 struct shadow_page_info *sp; 1.7 - cpumask_t flushmask = CPU_MASK_NONE; 1.8 mfn_t smfn; 1.9 int i; 1.10 1.11 @@ -819,12 +818,11 @@ static void _shadow_prealloc( 1.12 { 1.13 shadow_unhook_mappings(v, 1.14 pagetable_get_mfn(v2->arch.shadow_table[i])); 1.15 - cpus_or(flushmask, v2->vcpu_dirty_cpumask, flushmask); 1.16 1.17 /* See if that freed up enough space */ 1.18 if ( space_is_available(d, order, count) ) 1.19 { 1.20 - flush_tlb_mask(flushmask); 1.21 + flush_tlb_mask(d->domain_dirty_cpumask); 1.22 return; 1.23 } 1.24 }