# HG changeset patch
# User kaf24@xxxxxxxxxxxxxxxxxxxx
# Node ID 3ef86b208f9bc3eac63de8c0dfe5f16c0ec47839
# Parent 739154e26fb752caf6496620644e01318b64540a
Fix an operand size bug in the VMX MMIO decoder.
Signed-off-by: Chengyuan Li <chengyuan.li@xxxxxxxxx>
diff -r 739154e26fb7 -r 3ef86b208f9b xen/arch/x86/vmx_platform.c
--- a/xen/arch/x86/vmx_platform.c Tue Sep 20 09:02:43 2005
+++ b/xen/arch/x86/vmx_platform.c Tue Sep 20 09:05:03 2005
@@ -671,13 +671,13 @@
if (inst->operand[0] & REGISTER) { /* dest is memory */
index = operand_index(inst->operand[0]);
value = get_reg_value(size, index, 0, regs);
- send_mmio_req(type, gpa, 1, size, value, IOREQ_WRITE, 0);
+ send_mmio_req(type, gpa, 1, inst->op_size, value, IOREQ_WRITE, 0);
} else if (inst->operand[0] & IMMEDIATE) { /* dest is memory */
value = inst->immediate;
- send_mmio_req(type, gpa, 1, size, value, IOREQ_WRITE, 0);
+ send_mmio_req(type, gpa, 1, inst->op_size, value, IOREQ_WRITE, 0);
} else if (inst->operand[0] & MEMORY) { /* dest is register */
/* send the request and wait for the value */
- send_mmio_req(type, gpa, 1, size, 0, IOREQ_READ, 0);
+ send_mmio_req(type, gpa, 1, inst->op_size, 0, IOREQ_READ, 0);
} else {
printf("mmio_operands: invalid operand\n");
domain_crash_synchronous();
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|