WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] An FC4/i386 install inside VMX on an x86_64 system fails

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] An FC4/i386 install inside VMX on an x86_64 system fails because byte
From: Xen patchbot -unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Sun, 11 Sep 2005 09:28:10 +0000
Delivery-date: Sun, 11 Sep 2005 09:26:38 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User kaf24@xxxxxxxxxxxxxxxxxxxx
# Node ID 21cbdb20ff4cd1a6b051129b91776a2f42f6fff6
# Parent  9ead082168053f8912a902c65e8adb42961ef179
An FC4/i386 install inside VMX on an x86_64 system fails because byte
size is not handled by __set_reg_value. This patch adds that support.

This patch also reindents Chengyuan Li cmpb patch so that is aligns
with the rest of the code in that block.

Signed-Off-By: Leendert van Doorn <leendert@xxxxxxxxxxxxxx>

diff -r 9ead08216805 -r 21cbdb20ff4c xen/arch/x86/vmx_io.c
--- a/xen/arch/x86/vmx_io.c     Sat Sep 10 20:14:50 2005
+++ b/xen/arch/x86/vmx_io.c     Sun Sep 11 09:28:21 2005
@@ -99,7 +99,6 @@
             printk("Error: size:%x, index:%x are invalid!\n", size, index);
             domain_crash_synchronous();
             break;
-
         }
         break;
     case WORD:
@@ -199,6 +198,7 @@
 static inline void __set_reg_value(unsigned long *reg, int size, long value)
 {
     switch (size) {
+        case BYTE:
         case BYTE_64:
             *reg &= ~0xFF;
             *reg |= (value & 0xFF);
@@ -215,7 +215,7 @@
             *reg = value;
             break;
         default:
-            printk("Error: <__set_reg_value> : Unknown size for register\n");
+           printk("Error: <__set_reg_value>: size:%x is invalid\n", size);
             domain_crash_synchronous();
     }
 }
diff -r 9ead08216805 -r 21cbdb20ff4c xen/arch/x86/vmx_platform.c
--- a/xen/arch/x86/vmx_platform.c       Sat Sep 10 20:14:50 2005
+++ b/xen/arch/x86/vmx_platform.c       Sun Sep 11 09:28:21 2005
@@ -55,6 +55,7 @@
 static inline long __get_reg_value(unsigned long reg, int size)
 {
     switch(size) {
+        case BYTE:
         case BYTE_64:
             return (char)(reg & 0xFF);
         case WORD:
@@ -430,10 +431,10 @@
        if (((opcode[1] >> 3) & 7) == 7) { /* cmp $imm, m32/16 */
            instr->instr = INSTR_CMP;
 
-        if (opcode[0] == 0x80)
-            GET_OP_SIZE_FOR_BYTE(instr->op_size);
-        else
-            GET_OP_SIZE_FOR_NONEBYTE(instr->op_size);
+           if (opcode[0] == 0x80)
+               GET_OP_SIZE_FOR_BYTE(instr->op_size);
+            else
+               GET_OP_SIZE_FOR_NONEBYTE(instr->op_size);
 
            instr->operand[0] = mk_operand(instr->op_size, 0, 0, IMMEDIATE);
            instr->immediate = get_immediate(vm86, opcode+1, BYTE);

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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] An FC4/i386 install inside VMX on an x86_64 system fails because byte, Xen patchbot -unstable <=