diff options
author | Nadav Amit <namit@cs.technion.ac.il> | 2014-10-03 01:10:02 +0300 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2014-11-03 12:07:25 +0100 |
commit | 0e8a09969afb56b6bcdfe159f90a5fa20f831e85 (patch) | |
tree | 3d0d9be9187fa2d59d7d466fdc14b4d84eebe9d5 /arch | |
parent | 518547b32ab41b12c1303d12e6e15fb1621dca4c (diff) | |
download | linux-0e8a09969afb56b6bcdfe159f90a5fa20f831e85.tar.gz linux-0e8a09969afb56b6bcdfe159f90a5fa20f831e85.tar.bz2 linux-0e8a09969afb56b6bcdfe159f90a5fa20f831e85.zip |
KVM: x86: Clear DR7.LE during task-switch
DR7.LE should be cleared during task-switch. This feature is poorly documented.
For reference, see:
http://pdos.csail.mit.edu/6.828/2005/readings/i386/s12_02.htm
SDM [17.2.4]:
This feature is not supported in the P6 family processors, later IA-32
processors, and Intel 64 processors.
AMD [2:13.1.1.4]:
This bit is ignored by implementations of the AMD64 architecture.
Intel's formulation could mean that it isn't even zeroed, but current
hardware indeed does not behave like that.
Signed-off-by: Nadav Amit <namit@cs.technion.ac.il>
Reviewed-by: Radim Krčmář <rkrcmar@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86/kvm/vmx.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c index 63e7cf18c1c8..30e6e184ff09 100644 --- a/arch/x86/kvm/vmx.c +++ b/arch/x86/kvm/vmx.c @@ -5490,7 +5490,7 @@ static int handle_task_switch(struct kvm_vcpu *vcpu) } /* clear all local breakpoint enable flags */ - vmcs_writel(GUEST_DR7, vmcs_readl(GUEST_DR7) & ~0x55); + vmcs_writel(GUEST_DR7, vmcs_readl(GUEST_DR7) & ~0x155); /* * TODO: What about debug traps on tss switch? |