public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
* KVM: x86 emulator: cleanup and tiny fix of pio emulation
@ 2010-03-01 13:50 Takuya Yoshikawa
  2010-03-01 13:59 ` Gleb Natapov
  0 siblings, 1 reply; 2+ messages in thread
From: Takuya Yoshikawa @ 2010-03-01 13:50 UTC (permalink / raw)
  To: avi, mtosatti; +Cc: kvm

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@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
@@ -2344,19 +2344,16 @@ 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


^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2010-03-01 13:59 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-03-01 13:50 KVM: x86 emulator: cleanup and tiny fix of pio emulation Takuya Yoshikawa
2010-03-01 13:59 ` Gleb Natapov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox