From: Amit Shah Date: Mon, 23 Mar 2009 20:51:23 +0000 (-0300) Subject: KVM: SVM: Set the 'busy' flag of the TR selector X-Git-Tag: v2.6.28.10~29 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ae88df0aa69791cdaff74e89e65f2703f22e398e;p=thirdparty%2Fkernel%2Fstable.git KVM: SVM: Set the 'busy' flag of the TR selector (cherry picked from c0d09828c870f90c6bc72070ada281568f89c63b) 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 Signed-off-by: Avi Kivity Signed-off-by: Greg Kroah-Hartman --- diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c index 14ba6ff63cfc1..cf5c7aaea2f92 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, 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; }