direct-io.hg

changeset 15467:e7d40fadbf17

vmx: Write back modified interruptibility-info in enable_intr_window().
Signed-off-by: Keir Fraser <keir@xensource.com>
author kfraser@localhost.localdomain
date Wed Jul 04 10:34:18 2007 +0100 (2007-07-04)
parents e6d5e4709466
children d54d47fc8c6c
files xen/arch/x86/hvm/vmx/intr.c
line diff
     1.1 --- a/xen/arch/x86/hvm/vmx/intr.c	Tue Jul 03 18:46:00 2007 +0100
     1.2 +++ b/xen/arch/x86/hvm/vmx/intr.c	Wed Jul 04 10:34:18 2007 +0100
     1.3 @@ -96,6 +96,7 @@ static void enable_intr_window(struct vc
     1.4              /* Having both STI-blocking and MOV-SS-blocking fails vmentry. */
     1.5              intr_shadow &= ~VMX_INTR_SHADOW_STI;
     1.6              intr_shadow |= VMX_INTR_SHADOW_MOV_SS;
     1.7 +            __vmwrite(GUEST_INTERRUPTIBILITY_INFO, intr_shadow);
     1.8          }
     1.9          ctl = CPU_BASED_VIRTUAL_NMI_PENDING;
    1.10      }
    1.11 @@ -169,7 +170,6 @@ asmlinkage void vmx_intr_assist(void)
    1.12              if ( unlikely(idtv_info_field & 0x800) ) /* valid error code */
    1.13                  __vmwrite(VM_ENTRY_EXCEPTION_ERROR_CODE,
    1.14                            __vmread(IDT_VECTORING_ERROR_CODE));
    1.15 -            enable_intr_window(v, intr_source);
    1.16  
    1.17              /*
    1.18               * Clear NMI-blocking interruptibility info if an NMI delivery
    1.19 @@ -180,6 +180,8 @@ asmlinkage void vmx_intr_assist(void)
    1.20                            __vmread(GUEST_INTERRUPTIBILITY_INFO) &
    1.21                            ~VMX_INTR_SHADOW_NMI);
    1.22  
    1.23 +            enable_intr_window(v, intr_source);
    1.24 +
    1.25              HVM_DBG_LOG(DBG_LEVEL_1, "idtv_info_field=%x", idtv_info_field);
    1.26              return;
    1.27          }