From: Tim Deegan Date: Wed, 14 Feb 2007 14:44:07 +0000 (+0000) Subject: [XEN] Re-sync PAE l3 shadows when PV guests change them X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~15327^2^2~5 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=34bac08a56e084bdd11dd83cba9a35be886079d8;p=xen.git [XEN] Re-sync PAE l3 shadows when PV guests change them -in particular, for PAE Solaris guests Signed-off-by: Tim Deegan --- diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c index 2ef442f546..2d0afd735f 100644 --- a/xen/arch/x86/mm.c +++ b/xen/arch/x86/mm.c @@ -977,6 +977,19 @@ static void pae_flush_pgd( l3_pgentry_t *l3tab_ptr; struct pae_l3_cache *cache; + if ( unlikely(shadow_mode_enabled(d)) ) + { + cpumask_t m = CPU_MASK_NONE; + /* Re-shadow this l3 table on any vcpus that are using it */ + for_each_vcpu ( d, v ) + if ( pagetable_get_pfn(v->arch.guest_table) == mfn ) + { + paging_update_cr3(v); + cpus_or(m, m, v->vcpu_dirty_cpumask); + } + flush_tlb_mask(m); + } + /* If below 4GB then the pgdir is not shadowed in low memory. */ if ( !l3tab_needs_shadow(mfn) ) return;