mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 18:50:05 +01:00
More fixes for live migrate on PAE and 64-bit.
Signed-off-by: Jun Nakajima <jun.nakajima@intel.com> Signed-off-by: Steven Hand <steven@xensource.com>
This commit is contained in:
1 parent
0172c7181e
commit
369754a8f6
3 files changed
+14
-13
No files matched your search
@@ -2750,10 +2750,10 @@ static unsigned long shadow_l3_table(
|
||||
g2mfn, g2mfn);
|
||||
BUG(); /* XXX Deal gracefully with failure. */
|
||||
}
|
||||
|
||||
if (!get_shadow_ref(s2mfn))
|
||||
BUG();
|
||||
}
|
||||
|
||||
if (!get_shadow_ref(s2mfn))
|
||||
BUG();
|
||||
|
||||
/* Map shadow L2 into shadow L3 */
|
||||
spl3e[L3_PAGETABLE_ENTRIES - 1] = l3e_from_pfn(s2mfn, _PAGE_PRESENT);
|
||||
@@ -3526,10 +3526,11 @@ static void shadow_invlpg_64(struct vcpu *v, unsigned long va)
|
||||
|
||||
shadow_lock(d);
|
||||
|
||||
__shadow_sync_va(v, va);
|
||||
|
||||
if ( __shadow_get_l1e(v, va, &old_sl1e) )
|
||||
if ( l1e_get_flags(old_sl1e) & _PAGE_PRESENT )
|
||||
put_page_from_l1e(old_sl1e, d);
|
||||
|
||||
shadow_put_page_from_l1e(old_sl1e, d);
|
||||
|
||||
sl1e = l1e_empty();
|
||||
__shadow_set_l1e(v, va, &sl1e);
|
||||
|
||||
@@ -1425,7 +1425,7 @@ alloc_p2m_table(struct domain *d)
|
||||
|
||||
void shadow_l1_normal_pt_update(
|
||||
struct domain *d,
|
||||
unsigned long pa, l1_pgentry_t gpte,
|
||||
physaddr_t pa, l1_pgentry_t gpte,
|
||||
struct domain_mmap_cache *cache)
|
||||
{
|
||||
unsigned long sl1mfn;
|
||||
@@ -1450,7 +1450,7 @@ void shadow_l1_normal_pt_update(
|
||||
|
||||
void shadow_l2_normal_pt_update(
|
||||
struct domain *d,
|
||||
unsigned long pa, l2_pgentry_t gpde,
|
||||
physaddr_t pa, l2_pgentry_t gpde,
|
||||
struct domain_mmap_cache *cache)
|
||||
{
|
||||
unsigned long sl2mfn;
|
||||
@@ -1475,7 +1475,7 @@ void shadow_l2_normal_pt_update(
|
||||
#if CONFIG_PAGING_LEVELS >= 3
|
||||
void shadow_l3_normal_pt_update(
|
||||
struct domain *d,
|
||||
unsigned long pa, l3_pgentry_t l3e,
|
||||
physaddr_t pa, l3_pgentry_t l3e,
|
||||
struct domain_mmap_cache *cache)
|
||||
{
|
||||
unsigned long sl3mfn;
|
||||
@@ -1502,7 +1502,7 @@ void shadow_l3_normal_pt_update(
|
||||
#if CONFIG_PAGING_LEVELS >= 4
|
||||
void shadow_l4_normal_pt_update(
|
||||
struct domain *d,
|
||||
unsigned long pa, l4_pgentry_t l4e,
|
||||
physaddr_t pa, l4_pgentry_t l4e,
|
||||
struct domain_mmap_cache *cache)
|
||||
{
|
||||
unsigned long sl4mfn;
|
||||
|
||||
@@ -131,10 +131,10 @@ extern int set_p2m_entry(
|
||||
extern void remove_shadow(struct domain *d, unsigned long gpfn, u32 stype);
|
||||
|
||||
extern void shadow_l1_normal_pt_update(struct domain *d,
|
||||
unsigned long pa, l1_pgentry_t l1e,
|
||||
physaddr_t pa, l1_pgentry_t l1e,
|
||||
struct domain_mmap_cache *cache);
|
||||
extern void shadow_l2_normal_pt_update(struct domain *d,
|
||||
unsigned long pa, l2_pgentry_t l2e,
|
||||
physaddr_t pa, l2_pgentry_t l2e,
|
||||
struct domain_mmap_cache *cache);
|
||||
#if CONFIG_PAGING_LEVELS >= 3
|
||||
#include <asm/page-guest32.h>
|
||||
@@ -148,12 +148,12 @@ extern void shadow_l2_normal_pt_update(struct domain *d,
|
||||
|
||||
extern unsigned long gva_to_gpa(unsigned long gva);
|
||||
extern void shadow_l3_normal_pt_update(struct domain *d,
|
||||
unsigned long pa, l3_pgentry_t l3e,
|
||||
physaddr_t pa, l3_pgentry_t l3e,
|
||||
struct domain_mmap_cache *cache);
|
||||
#endif
|
||||
#if CONFIG_PAGING_LEVELS >= 4
|
||||
extern void shadow_l4_normal_pt_update(struct domain *d,
|
||||
unsigned long pa, l4_pgentry_t l4e,
|
||||
physaddr_t pa, l4_pgentry_t l4e,
|
||||
struct domain_mmap_cache *cache);
|
||||
#endif
|
||||
extern int shadow_do_update_va_mapping(unsigned long va,
|
||||
|
||||