Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c310bac5 authored by Jan Kiszka's avatar Jan Kiszka Committed by Avi Kivity
Browse files

KVM: x86: Drop RF manipulation for guest single-stepping



RF is not required for injecting TF as the latter will trigger only
after an instruction execution anyway. So do not touch RF when arming or
disarming guest single-step mode.

Signed-off-by: default avatarJan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
parent 66b7138f
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -5884,7 +5884,7 @@ unsigned long kvm_get_rflags(struct kvm_vcpu *vcpu)


	rflags = kvm_x86_ops->get_rflags(vcpu);
	rflags = kvm_x86_ops->get_rflags(vcpu);
	if (vcpu->guest_debug & KVM_GUESTDBG_SINGLESTEP)
	if (vcpu->guest_debug & KVM_GUESTDBG_SINGLESTEP)
		rflags &= ~(unsigned long)(X86_EFLAGS_TF | X86_EFLAGS_RF);
		rflags &= ~X86_EFLAGS_TF;
	return rflags;
	return rflags;
}
}
EXPORT_SYMBOL_GPL(kvm_get_rflags);
EXPORT_SYMBOL_GPL(kvm_get_rflags);
@@ -5893,7 +5893,7 @@ void kvm_set_rflags(struct kvm_vcpu *vcpu, unsigned long rflags)
{
{
	if (vcpu->guest_debug & KVM_GUESTDBG_SINGLESTEP &&
	if (vcpu->guest_debug & KVM_GUESTDBG_SINGLESTEP &&
	    kvm_is_linear_rip(vcpu, vcpu->arch.singlestep_rip))
	    kvm_is_linear_rip(vcpu, vcpu->arch.singlestep_rip))
		rflags |= X86_EFLAGS_TF | X86_EFLAGS_RF;
		rflags |= X86_EFLAGS_TF;
	kvm_x86_ops->set_rflags(vcpu, rflags);
	kvm_x86_ops->set_rflags(vcpu, rflags);
}
}
EXPORT_SYMBOL_GPL(kvm_set_rflags);
EXPORT_SYMBOL_GPL(kvm_set_rflags);