1 Mar 2010 14:50
KVM: x86 emulator: cleanup and tiny fix of pio emulation
Takuya Yoshikawa <yoshikawa.takuya <at> oss.ntt.co.jp>
2010-03-01 13:50:53 GMT
2010-03-01 13:50:53 GMT
Cannot_emulate includes "c->eip = saved_eip". So the execution
of this after kvm_emulate_pio() is redundant. Let's remove this.
Others are trivial cleanups.
Signed-off-by: Takuya Yoshikawa <yoshikawa.takuya <at> oss.ntt.co.jp>
---
arch/x86/kvm/emulate.c | 13 +++++--------
1 files changed, 5 insertions(+), 8 deletions(-)
diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
index 5b6794a..a27cc3d 100644
--- a/arch/x86/kvm/emulate.c
+++ b/arch/x86/kvm/emulate.c
<at> <at> -2344,19 +2344,16 <at> <at> special_insn:
case 0xef: /* out (e/r)ax,dx */
port = c->regs[VCPU_REGS_RDX];
io_dir_in = 0;
- do_io:
- if (!emulator_io_permited(ctxt, ops, port,
- (c->d & ByteOp) ? 1 : c->op_bytes)) {
+ do_io: {
+ int len = (c->d & ByteOp) ? 1 : c->op_bytes;
+ if (!emulator_io_permited(ctxt, ops, port, len)) {
kvm_inject_gp(ctxt->vcpu, 0);
goto done;
}
- if (kvm_emulate_pio(ctxt->vcpu, io_dir_in,
- (c->d & ByteOp) ? 1 : c->op_bytes,
- port) != 0) {
- c->eip = saved_eip;
+ if (kvm_emulate_pio(ctxt->vcpu, io_dir_in, len, port))
goto cannot_emulate;
- }
break;
+ }
case 0xf4: /* hlt */
ctxt->vcpu->arch.halt_request = 1;
break;
--
--
1.6.3.3
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo <at> vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
RSS Feed