ia64/xen-unstable

changeset 17527: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>
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              }