[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] vmx: fix getvcpucontext about segment registers in real mode



Keir Fraser writes:
> On 11/11/08 07:39, "Kouya Shimura" <kouya@xxxxxxxxxxxxxx> wrote:
> 
> > In VMX real mode, the return value of segment register from
> > getvcpucontext is corrupt.
> > 
> This isn't unique to VMX realmode. The code you added is actually
> HVM-generic and belongs directly in arch_get_info_guest() for all SVM and
> VMX execution modes.
> 
>  -- Keir
> 

Okay. Revised patch attached.
Actually I'm not familiar with SVM.

Thanks,
Kouya


x86: fix getvcpucontext about segment registers in real mode

Signed-off-by: Kouya Shimura <kouya@xxxxxxxxxxxxxx>
Signed-off-by: Akio Takebe <takebe_akio@xxxxxxxxxxxxxx>

diff -r 5fd51e1e9c79 xen/arch/x86/domctl.c
--- a/xen/arch/x86/domctl.c     Wed Nov 05 10:57:21 2008 +0000
+++ b/xen/arch/x86/domctl.c     Tue Nov 11 17:54:16 2008 +0900
@@ -1079,6 +1079,24 @@ void arch_get_info_guest(struct vcpu *v,
         c.nat->ctrlreg[2] = v->arch.hvm_vcpu.guest_cr[2];
         c.nat->ctrlreg[3] = v->arch.hvm_vcpu.guest_cr[3];
         c.nat->ctrlreg[4] = v->arch.hvm_vcpu.guest_cr[4];
+        if ( !(v->arch.hvm_vcpu.guest_cr[0] & X86_CR0_PE) )
+        {
+            struct cpu_user_regs *regs = &c.nat->user_regs;
+            struct segment_register sreg;
+
+            hvm_get_segment_register(v, x86_seg_cs, &sreg);
+            regs->cs = sreg.sel;
+            hvm_get_segment_register(v, x86_seg_ss, &sreg);
+            regs->ss = sreg.sel;
+            hvm_get_segment_register(v, x86_seg_ds, &sreg);
+            regs->ds = sreg.sel;
+            hvm_get_segment_register(v, x86_seg_es, &sreg);
+            regs->es = sreg.sel;
+            hvm_get_segment_register(v, x86_seg_fs, &sreg);
+            regs->fs = sreg.sel;
+            hvm_get_segment_register(v, x86_seg_gs, &sreg);
+            regs->gs = sreg.sel;
+        }
     }
     else
     {
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.