KVM: allow emulator to adjust rip for emulated pio instructions
If we call the emulator we shouldn't call skip_emulated_instruction() in the first place, since the emulator already computes the next rip for us. Thus we move ->skip_emulated_instruction() out of kvm_emulate_pio() and into handle_io() (and the svm equivalent). We also replaced "return 0" by "break" in the "do_io:" case because now the shadow register state needs to be committed. Otherwise eip will never be updated. Signed-off-by: Guillaume Thouvenin <guillaume.thouvenin@ext.bull.net> Signed-off-by: Avi Kivity <avi@redhat.com>
This commit is contained in:

committed by
Avi Kivity

parent
c0d09828c8
commit
e93f36bcfa
@@ -1772,7 +1772,7 @@ special_insn:
|
||||
c->eip = saved_eip;
|
||||
goto cannot_emulate;
|
||||
}
|
||||
return 0;
|
||||
break;
|
||||
case 0xf4: /* hlt */
|
||||
ctxt->vcpu->arch.halt_request = 1;
|
||||
break;
|
||||
|
Reference in New Issue
Block a user