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:
smh22@firebug.cl.cam.ac.uk committed 2005-12-02 09:54:09 +01:00
1 parent 0172c7181e
commit 369754a8f6
3 files changed
+14 -13

No files matched your search

+6 -5
View File
@@ -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);
+4 -4
View File
@@ -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;
+4 -4
View File
@@ -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,
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.