aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kvm
diff options
context:
space:
mode:
authorAmit Shah <amit.shah@redhat.com>2008-10-27 05:04:18 -0400
committerAvi Kivity <avi@redhat.com>2008-12-31 09:51:48 -0500
commitc0d09828c870f90c6bc72070ada281568f89c63b (patch)
tree84964d81972066b33496f9c2105f2b338d369dae /arch/x86/kvm
parent25022acc3dd5f0b54071c7ba7c371860f2971b52 (diff)
KVM: SVM: Set the 'busy' flag of the TR selector
The busy flag of the TR selector is not set by the hardware. This breaks migration from amd hosts to intel hosts. Signed-off-by: Amit Shah <amit.shah@redhat.com> Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch/x86/kvm')
-rw-r--r--arch/x86/kvm/svm.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
index 665008d97856..743aebd7bfcc 100644
--- a/arch/x86/kvm/svm.c
+++ b/arch/x86/kvm/svm.c
@@ -781,6 +781,13 @@ static void svm_get_segment(struct kvm_vcpu *vcpu,
781 if (seg == VCPU_SREG_CS) 781 if (seg == VCPU_SREG_CS)
782 var->g = s->limit > 0xfffff; 782 var->g = s->limit > 0xfffff;
783 783
784 /*
785 * Work around a bug where the busy flag in the tr selector
786 * isn't exposed
787 */
788 if (seg == VCPU_SREG_TR)
789 var->type |= 0x2;
790
784 var->unusable = !var->present; 791 var->unusable = !var->present;
785} 792}
786 793