# 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
|