kvm: Fix guest single-stepping
Hopefully the last regression of 4c0960c0: KVM_SET_GUEST_DEBUG requires properly synchronized guest registers (on x86: eflags) on entry. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
parent
5f30fa18ad
commit
b3807725f6
|
@ -938,7 +938,13 @@ struct kvm_set_guest_debug_data {
|
||||||
static void kvm_invoke_set_guest_debug(void *data)
|
static void kvm_invoke_set_guest_debug(void *data)
|
||||||
{
|
{
|
||||||
struct kvm_set_guest_debug_data *dbg_data = data;
|
struct kvm_set_guest_debug_data *dbg_data = data;
|
||||||
dbg_data->err = kvm_vcpu_ioctl(dbg_data->env, KVM_SET_GUEST_DEBUG, &dbg_data->dbg);
|
CPUState *env = dbg_data->env;
|
||||||
|
|
||||||
|
if (env->kvm_state->regs_modified) {
|
||||||
|
kvm_arch_put_registers(env);
|
||||||
|
env->kvm_state->regs_modified = 0;
|
||||||
|
}
|
||||||
|
dbg_data->err = kvm_vcpu_ioctl(env, KVM_SET_GUEST_DEBUG, &dbg_data->dbg);
|
||||||
}
|
}
|
||||||
|
|
||||||
int kvm_update_guest_debug(CPUState *env, unsigned long reinject_trap)
|
int kvm_update_guest_debug(CPUState *env, unsigned long reinject_trap)
|
||||||
|
|
Loading…
Reference in New Issue