diff mbox

[kvm-unit-tests] x86: vmx: fix definition of X86_CR4_VMXE

Message ID 1456184436-31168-1-git-send-email-pfeiner@google.com (mailing list archive)
State New, archived
Headers show

Commit Message

Peter Feiner Feb. 22, 2016, 11:40 p.m. UTC
Was defined as 0x1 when it should have been 0x2000 (13th bit of CR4).
See Intel manual 23.7. 0x1 is the VME 'Virtual-8086 Mode Extensions'
bit, which the vmx tests don't exercise.

The correct bit was being set thanks to IA32_VMX_CR4_FIXED{0,1} MSRs
forcing it.

I hacked the test setup to forcibly un-set the bit and observed the
correct #UD VMXON behavior. Adding a test to verify the #UD behavior
is follow-up work.

Signed-off-by: Peter Feiner <pfeiner@google.com>
---
 lib/x86/processor.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Paolo Bonzini Feb. 23, 2016, 12:14 p.m. UTC | #1
On 23/02/2016 00:40, Peter Feiner wrote:
> Was defined as 0x1 when it should have been 0x2000 (13th bit of CR4).
> See Intel manual 23.7. 0x1 is the VME 'Virtual-8086 Mode Extensions'
> bit, which the vmx tests don't exercise.
> 
> The correct bit was being set thanks to IA32_VMX_CR4_FIXED{0,1} MSRs
> forcing it.
> 
> I hacked the test setup to forcibly un-set the bit and observed the
> correct #UD VMXON behavior. Adding a test to verify the #UD behavior
> is follow-up work.
> 
> Signed-off-by: Peter Feiner <pfeiner@google.com>
> ---
>  lib/x86/processor.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/lib/x86/processor.h b/lib/x86/processor.h
> index 95cea1a..dff1689 100644
> --- a/lib/x86/processor.h
> +++ b/lib/x86/processor.h
> @@ -21,7 +21,7 @@
>  #define X86_CR0_WP     0x00010000
>  #define X86_CR0_AM     0x00040000
>  #define X86_CR0_PG     0x80000000
> -#define X86_CR4_VMXE   0x00000001
> +#define X86_CR4_VMXE   0x00002000
>  #define X86_CR4_TSD    0x00000004
>  #define X86_CR4_DE     0x00000008
>  #define X86_CR4_PSE    0x00000010
> 

Thanks, applying both patches.

Paolo
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/lib/x86/processor.h b/lib/x86/processor.h
index 95cea1a..dff1689 100644
--- a/lib/x86/processor.h
+++ b/lib/x86/processor.h
@@ -21,7 +21,7 @@ 
 #define X86_CR0_WP     0x00010000
 #define X86_CR0_AM     0x00040000
 #define X86_CR0_PG     0x80000000
-#define X86_CR4_VMXE   0x00000001
+#define X86_CR4_VMXE   0x00002000
 #define X86_CR4_TSD    0x00000004
 #define X86_CR4_DE     0x00000008
 #define X86_CR4_PSE    0x00000010