ia64/xen-unstable

changeset 6975:3ef86b208f9b

Fix an operand size bug in the VMX MMIO decoder.

Signed-off-by: Chengyuan Li <chengyuan.li@intel.com>
author kaf24@firebug.cl.cam.ac.uk
date Tue Sep 20 09:05:03 2005 +0000 (2005-09-20)
parents 739154e26fb7
children c0796e18b6a4
files xen/arch/x86/vmx_platform.c
line diff
     1.1 --- a/xen/arch/x86/vmx_platform.c	Tue Sep 20 09:02:43 2005 +0000
     1.2 +++ b/xen/arch/x86/vmx_platform.c	Tue Sep 20 09:05:03 2005 +0000
     1.3 @@ -671,13 +671,13 @@ static void mmio_operands(int type, unsi
     1.4      if (inst->operand[0] & REGISTER) { /* dest is memory */
     1.5          index = operand_index(inst->operand[0]);
     1.6          value = get_reg_value(size, index, 0, regs);
     1.7 -        send_mmio_req(type, gpa, 1, size, value, IOREQ_WRITE, 0);
     1.8 +        send_mmio_req(type, gpa, 1, inst->op_size, value, IOREQ_WRITE, 0);
     1.9      } else if (inst->operand[0] & IMMEDIATE) { /* dest is memory */
    1.10          value = inst->immediate;
    1.11 -        send_mmio_req(type, gpa, 1, size, value, IOREQ_WRITE, 0);
    1.12 +        send_mmio_req(type, gpa, 1, inst->op_size, value, IOREQ_WRITE, 0);
    1.13      } else if (inst->operand[0] & MEMORY) { /* dest is register */
    1.14          /* send the request and wait for the value */
    1.15 -        send_mmio_req(type, gpa, 1, size, 0, IOREQ_READ, 0);
    1.16 +        send_mmio_req(type, gpa, 1, inst->op_size, 0, IOREQ_READ, 0);
    1.17      } else {
    1.18          printf("mmio_operands: invalid operand\n");
    1.19          domain_crash_synchronous();