diff -r c3afa05c3cb5 -r dac9e358bc4a xen/arch/x86/hvm/svm/emulate.c --- a/xen/arch/x86/hvm/svm/emulate.c Thu Dec 02 11:08:21 2010 -0600 +++ b/xen/arch/x86/hvm/svm/emulate.c Thu Dec 02 17:42:40 2010 -0600 @@ -76,7 +76,7 @@ /* (exitcodes 84-95) are reserved */ case VMEXIT_IDTR_READ ... VMEXIT_TR_WRITE: case VMEXIT_RDTSC ... VMEXIT_MSR: - case VMEXIT_VMRUN ... VMEXIT_MWAIT_CONDITIONAL: + case VMEXIT_VMRUN ... VMEXIT_XSETBV: /* ...and the rest of the #VMEXITs */ case VMEXIT_CR0_SEL_WRITE: case VMEXIT_EXCEPTION_BP: diff -r c3afa05c3cb5 -r dac9e358bc4a xen/arch/x86/hvm/svm/vmcb.c --- a/xen/arch/x86/hvm/svm/vmcb.c Thu Dec 02 11:08:21 2010 -0600 +++ b/xen/arch/x86/hvm/svm/vmcb.c Thu Dec 02 17:42:40 2010 -0600 @@ -127,7 +127,8 @@ GENERAL2_INTERCEPT_VMLOAD | GENERAL2_INTERCEPT_VMSAVE | GENERAL2_INTERCEPT_STGI | GENERAL2_INTERCEPT_CLGI | GENERAL2_INTERCEPT_SKINIT | GENERAL2_INTERCEPT_MWAIT | - GENERAL2_INTERCEPT_WBINVD | GENERAL2_INTERCEPT_MONITOR; + GENERAL2_INTERCEPT_WBINVD | GENERAL2_INTERCEPT_MONITOR | + GENERAL2_INTERCEPT_XSETBV; /* Intercept all debug-register writes. */ vmcb->dr_intercepts = ~0u; diff -r c3afa05c3cb5 -r dac9e358bc4a xen/include/asm-x86/hvm/svm/vmcb.h --- a/xen/include/asm-x86/hvm/svm/vmcb.h Thu Dec 02 11:08:21 2010 -0600 +++ b/xen/include/asm-x86/hvm/svm/vmcb.h Thu Dec 02 17:42:40 2010 -0600 @@ -76,7 +76,8 @@ GENERAL2_INTERCEPT_WBINVD = 1 << 9, GENERAL2_INTERCEPT_MONITOR = 1 << 10, GENERAL2_INTERCEPT_MWAIT = 1 << 11, - GENERAL2_INTERCEPT_MWAIT_CONDITIONAL = 1 << 12 + GENERAL2_INTERCEPT_MWAIT_CONDITIONAL = 1 << 12, + GENERAL2_INTERCEPT_XSETBV = 1 << 13 };