From: kaf24@firebug.cl.cam.ac.uk Date: Wed, 17 May 2006 23:01:59 +0000 (+0100) Subject: Fix register corruption caused by c/s 9922. X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~16047^2~47 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=26d9fa01fbc30efc51823fc690816acd2d697b53;p=xen.git Fix register corruption caused by c/s 9922. From: Tom Woller Signed-off-by: Keir Fraser --- diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c index c259efc928..3dfaf9c5b0 100644 --- a/xen/arch/x86/hvm/svm/svm.c +++ b/xen/arch/x86/hvm/svm/svm.c @@ -546,7 +546,6 @@ static inline int svm_do_debugout(unsigned long exit_code) return 1; } - void save_svm_cpu_user_regs(struct vcpu *v, struct cpu_user_regs *ctxt) { struct vmcb_struct *vmcb = v->arch.hvm_svm.vmcb; @@ -577,8 +576,6 @@ void svm_store_cpu_user_regs(struct cpu_user_regs *regs, struct vcpu *v) regs->ds = vmcb->ds.sel; regs->es = vmcb->es.sel; regs->ss = vmcb->ss.sel; - regs->fs = vmcb->fs.sel; - regs->gs = vmcb->gs.sel; } /* XXX Use svm_load_cpu_guest_regs instead */ @@ -594,12 +591,6 @@ void svm_load_cpu_user_regs(struct vcpu *v, struct cpu_user_regs *regs) vmcb->rflags = regs->eflags; vmcb->cs.sel = regs->cs; vmcb->rip = regs->eip; - - vmcb->ds.sel = regs->ds; - vmcb->es.sel = regs->es; - vmcb->fs.sel = regs->fs; - vmcb->gs.sel = regs->gs; - if (regs->eflags & EF_TF) *intercepts |= EXCEPTION_BITMAP_DB; else