# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1240843209 -3600
# Node ID 9fdcd3ab84b7e1c74ebd3abae0e99260ae4f2e7f
# Parent 7809e0941b38829de084e5e19a04dffc21aa4bea
x86 hvm: During task switch, LDT must be loaded before all other
segments, as some may be loaded from the LDT.
Signed-off-by: Keir Fraser <keir.fraser@xxxxxxxxxx>
---
xen/arch/x86/hvm/hvm.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff -r 7809e0941b38 -r 9fdcd3ab84b7 xen/arch/x86/hvm/hvm.c
--- a/xen/arch/x86/hvm/hvm.c Sat Apr 25 08:19:14 2009 +0100
+++ b/xen/arch/x86/hvm/hvm.c Mon Apr 27 15:40:09 2009 +0100
@@ -1440,13 +1440,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(
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|