ia64/xen-unstable

changeset 10871:87247ceb0acd

[IA64] boot windows server 2003:fix a bug about nat

Because EML_UNAT may be cahnged by guest bank switch,
it should be saved&restored at entry & exit path.

Signed-off-by: Anthony Xu <anthony.xu@intel.com>
author awilliam@xenbuild.aw
date Mon Jul 31 10:18:28 2006 -0600 (2006-07-31)
parents be11edf8964e
children aa9d157d7637
files xen/arch/ia64/vmx/vmx_entry.S xen/arch/ia64/vmx/vmx_minstate.h
line diff
     1.1 --- a/xen/arch/ia64/vmx/vmx_entry.S	Mon Jul 31 10:14:31 2006 -0600
     1.2 +++ b/xen/arch/ia64/vmx/vmx_entry.S	Mon Jul 31 10:18:28 2006 -0600
     1.3 @@ -197,6 +197,11 @@ GLOBAL_ENTRY(ia64_leave_hypervisor)
     1.4      ;;
     1.5      mov ar.pfs=loc0
     1.6      adds r20=PT(PR)+16,r12
     1.7 +    adds r8=PT(EML_UNAT)+16,r12
     1.8 +    ;;
     1.9 +    ld8 r8=[r8]
    1.10 +    ;;
    1.11 +    mov ar.unat=r8
    1.12      ;;
    1.13      lfetch [r20],PT(CR_IPSR)-PT(PR)
    1.14      adds r2 = PT(B6)+16,r12
     2.1 --- a/xen/arch/ia64/vmx/vmx_minstate.h	Mon Jul 31 10:14:31 2006 -0600
     2.2 +++ b/xen/arch/ia64/vmx/vmx_minstate.h	Mon Jul 31 10:18:28 2006 -0600
     2.3 @@ -269,7 +269,12 @@
     2.4      ;;                  \
     2.5      st8 [r24]=r9;           /* ar.csd */    \
     2.6      st8 [r25]=r10;          /* ar.ssd */    \
     2.7 -    ;;
     2.8 +    ;;		\
     2.9 +    mov r18=ar.unat;    \
    2.10 +    adds r19=PT(EML_UNAT)-PT(R4),r2; 	\
    2.11 +    ;;			\
    2.12 +    st8 [r19]=r18;       /* eml_unat */ \
    2.13 +
    2.14  
    2.15  #define VMX_SAVE_EXTRA               \
    2.16  .mem.offset 0,0; st8.spill [r2]=r4,16;     \