x86: Intel wants the TSS busy flag set when we do a vmentry.
authorKeir Fraser <keir.fraser@citrix.com>
Wed, 18 Jun 2008 08:46:36 +0000 (09:46 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Wed, 18 Jun 2008 08:46:36 +0000 (09:46 +0100)
Signed-off-by: Jean Guyader <jean.guyader@eu.citrix.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
xen/arch/x86/hvm/vmx/vmx.c

index fe5c2ece942232dbb5b80eaf2fae846f64125a3e..16dfe29e10de0f7331fcfbecced4b5604b71f3dd 100644 (file)
@@ -838,7 +838,8 @@ static void vmx_set_segment_register(struct vcpu *v, enum x86_segment seg,
         __vmwrite(GUEST_TR_SELECTOR, reg->sel);
         __vmwrite(GUEST_TR_LIMIT, reg->limit);
         __vmwrite(GUEST_TR_BASE, reg->base);
-        __vmwrite(GUEST_TR_AR_BYTES, attr);
+        /* VMX checks that the the busy flag (bit 1) is set. */
+        __vmwrite(GUEST_TR_AR_BYTES, attr | 2);
         break;
     case x86_seg_gdtr:
         __vmwrite(GUEST_GDTR_LIMIT, reg->limit);