KVM: SVM: Set the 'busy' flag of the TR selector
Amit Shah [Mon, 27 Oct 2008 09:04:18 +0000 (09:04 +0000)]
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>

arch/x86/kvm/svm.c

index 665008d..743aebd 100644 (file)
@@ -781,6 +781,13 @@ static void svm_get_segment(struct kvm_vcpu *vcpu,
        if (seg == VCPU_SREG_CS)
                var->g = s->limit > 0xfffff;
 
+       /*
+        * Work around a bug where the busy flag in the tr selector
+        * isn't exposed
+        */
+       if (seg == VCPU_SREG_TR)
+               var->type |= 0x2;
+
        var->unusable = !var->present;
 }