]> xenbits.xensource.com Git - people/vhanquez/xen.git/commitdiff
x86 hvm: During task switch, LDT must be loaded before all other
authorKeir Fraser <keir.fraser@citrix.com>
Tue, 28 Apr 2009 14:03:32 +0000 (15:03 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Tue, 28 Apr 2009 14:03:32 +0000 (15:03 +0100)
segments, as some may be loaded from the LDT.

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
xen-unstable changeset:   19578:9fdcd3ab84b7
xen-unstable date:        Mon Apr 27 15:40:09 2009 +0100

xen/arch/x86/hvm/hvm.c

index 312954e2d7a4d8de590e49c6178392b7121752a0..8bd20e09bbf4bf702078c603b1e4cd0f810e1073 100644 (file)
@@ -1433,13 +1433,13 @@ void hvm_task_switch(
     }
 
     exn_raised = 0;
-    if ( hvm_load_segment_selector(v, x86_seg_es, tss.es) ||
+    if ( hvm_load_segment_selector(v, x86_seg_ldtr, tss.ldt) ||
+         hvm_load_segment_selector(v, x86_seg_es, tss.es) ||
          hvm_load_segment_selector(v, x86_seg_cs, tss.cs) ||
          hvm_load_segment_selector(v, x86_seg_ss, tss.ss) ||
          hvm_load_segment_selector(v, x86_seg_ds, tss.ds) ||
          hvm_load_segment_selector(v, x86_seg_fs, tss.fs) ||
-         hvm_load_segment_selector(v, x86_seg_gs, tss.gs) ||
-         hvm_load_segment_selector(v, x86_seg_ldtr, tss.ldt) )
+         hvm_load_segment_selector(v, x86_seg_gs, tss.gs) )
         exn_raised = 1;
 
     rc = hvm_copy_to_guest_virt(