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

[Xen-changelog] [xen-unstable] [VMXASSIST] Support all data segments in mov_to_seg().



# HG changeset patch
# User kaf24@xxxxxxxxxxxxxxxxxxxxx
# Node ID 5bdd8b5e3a1fac2880e436a5c4b86a2ff9bb25b8
# Parent  e821c15b7cfeacbc6eac6e506f8fc1748b98a418
[VMXASSIST] Support all data segments in mov_to_seg().

This patch lets Plan9 crash at the same location before the original
patch by Stephen Tweedie.

Signed-off-by: Steven Rostedt <srostedt@xxxxxxxxxx>
---
 tools/firmware/vmxassist/vm86.c |   26 ++++++++++++++++++++++----
 1 files changed, 22 insertions(+), 4 deletions(-)

diff -r e821c15b7cfe -r 5bdd8b5e3a1f tools/firmware/vmxassist/vm86.c
--- a/tools/firmware/vmxassist/vm86.c   Fri Nov 10 18:27:35 2006 +0000
+++ b/tools/firmware/vmxassist/vm86.c   Sat Nov 11 01:16:40 2006 +0000
@@ -829,15 +829,33 @@ mov_to_seg(struct regs *regs, unsigned p
                goto fail;
 
        switch ((modrm & 0x38) >> 3) {
+       case 0: /* es */
+               regs->ves = getreg16(regs, modrm);
+               saved_rm_regs.ves = 0;
+               oldctx.es_sel = regs->ves;
+               return 1;
+
+       /* case 1: cs */
+
+       case 2: /* ss */
+               regs->uss = getreg16(regs, modrm);
+               saved_rm_regs.uss = 0;
+               oldctx.ss_sel = regs->uss;
+               return 1;
        case 3: /* ds */
                regs->vds = getreg16(regs, modrm);
                saved_rm_regs.vds = 0;
                oldctx.ds_sel = regs->vds;
                return 1;
-       case 0: /* es */
-               regs->ves = getreg16(regs, modrm);
-               saved_rm_regs.ves = 0;
-               oldctx.es_sel = regs->ves;
+       case 4: /* fs */
+               regs->vfs = getreg16(regs, modrm);
+               saved_rm_regs.vfs = 0;
+               oldctx.fs_sel = regs->vfs;
+               return 1;
+       case 5: /* gs */
+               regs->vgs = getreg16(regs, modrm);
+               saved_rm_regs.vgs = 0;
+               oldctx.gs_sel = regs->vgs;
                return 1;
        }
 

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

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