ia64/xen-unstable

changeset 10653:5fd332b263d4

[HVM] Fix the kernel build failure issue on HVM SMP guests which
are using 2M PSE pages. Now we can do kernel build on:
1) RHEL4 IA32 SMP guest on PAE host.
2) RHEL4 IA32 SMP guest on IA32e host.
3) IA32e SMP guest on IA32e host.

Signed-off-by: Xiaohui Xin <xiaohui.xin@intel.com>
Signed-off-by: Xin Li <xin.b.li@intel.com>
author kfraser@localhost.localdomain
date Wed Jul 05 11:30:12 2006 +0100 (2006-07-05)
parents 43474e663b3d
children 222b492cc063
files xen/arch/x86/shadow.c
line diff
     1.1 --- a/xen/arch/x86/shadow.c	Wed Jul 05 11:27:58 2006 +0100
     1.2 +++ b/xen/arch/x86/shadow.c	Wed Jul 05 11:30:12 2006 +0100
     1.3 @@ -1726,6 +1726,7 @@ static int resync_all(struct domain *d, 
     1.4                      {
     1.5                          guest_l1_pgentry_t tmp_gl1e = guest_l1e_empty();
     1.6                          validate_pte_change(d, tmp_gl1e, sl1e_p);
     1.7 +                        unshadow_l1 = 1;
     1.8                          continue;
     1.9                      }
    1.10  #endif
    1.11 @@ -3676,20 +3677,19 @@ static inline int l2e_rw_fault(
    1.12                  put_page_from_l1e(old_sl1e, d);
    1.13          }
    1.14  
    1.15 -        l1_p[gpfn - start_gpfn] = sl1e;
    1.16 -
    1.17          if (rw) {
    1.18              /* shadow_mark_va_out_of_sync() need modificatin for 2M pages*/
    1.19              if ( mfn_is_page_table(mfn) )
    1.20                  shadow_mark_va_out_of_sync_2mp(v, gpfn, mfn,
    1.21                    l2e_get_paddr(sl2e) | (sizeof(l1_pgentry_t) * (gpfn - start_gpfn)));
    1.22          }
    1.23 +
    1.24 +        l1_p[gpfn - start_gpfn] = sl1e;
    1.25      }
    1.26  
    1.27      unmap_domain_page(l1_p);
    1.28      *gl2e_p = gl2e;
    1.29      return 1;
    1.30 -
    1.31  }
    1.32  
    1.33  /*