aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/kvm/vmx.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/kvm/vmx.c')
-rw-r--r--drivers/kvm/vmx.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/kvm/vmx.c b/drivers/kvm/vmx.c
index a721b60f7385..4d5f40fcb651 100644
--- a/drivers/kvm/vmx.c
+++ b/drivers/kvm/vmx.c
@@ -1459,12 +1459,14 @@ static int handle_io(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run)
1459 = (vmcs_readl(GUEST_RFLAGS) & X86_EFLAGS_DF) != 0; 1459 = (vmcs_readl(GUEST_RFLAGS) & X86_EFLAGS_DF) != 0;
1460 kvm_run->io.rep = (exit_qualification & 32) != 0; 1460 kvm_run->io.rep = (exit_qualification & 32) != 0;
1461 kvm_run->io.port = exit_qualification >> 16; 1461 kvm_run->io.port = exit_qualification >> 16;
1462 kvm_run->io.count = 1;
1462 if (kvm_run->io.string) { 1463 if (kvm_run->io.string) {
1463 if (!get_io_count(vcpu, &kvm_run->io.count)) 1464 if (!get_io_count(vcpu, &kvm_run->io.count))
1464 return 1; 1465 return 1;
1465 kvm_run->io.address = vmcs_readl(GUEST_LINEAR_ADDRESS); 1466 kvm_run->io.address = vmcs_readl(GUEST_LINEAR_ADDRESS);
1466 } else 1467 } else
1467 kvm_run->io.value = vcpu->regs[VCPU_REGS_RAX]; /* rax */ 1468 kvm_run->io.value = vcpu->regs[VCPU_REGS_RAX]; /* rax */
1469 vcpu->pio_pending = 1;
1468 return 0; 1470 return 0;
1469} 1471}
1470 1472