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

Commit 59d8eb53 authored by Frederic Weisbecker's avatar Frederic Weisbecker
Browse files

hw-breakpoints: Wrap in the KVM breakpoint active state check



Wrap in the cpu dr7 check that tells if we have active
breakpoints that need to be restored in the cpu.

This wrapper makes the check more self-explainable and also
reusable for any further other uses.

Reported-by: default avatarJan Kiszka <jan.kiszka@web.de>
Signed-off-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
Cc: Avi Kivity <avi@redhat.com>
Cc: "K. Prasad" <prasad@linux.vnet.ibm.com>
parent f60d24d2
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -89,6 +89,11 @@ static inline void hw_breakpoint_disable(void)
	set_debugreg(0UL, 3);
}

static inline int hw_breakpoint_active(void)
{
	return __get_cpu_var(dr7) & DR_GLOBAL_ENABLE_MASK;
}

extern void aout_dump_debugregs(struct user *dump);

#ifdef CONFIG_KVM
+1 −1
Original line number Diff line number Diff line
@@ -3651,7 +3651,7 @@ static int vcpu_enter_guest(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run)
	 * care about the messed up debug address registers. But if
	 * we have some of them active, restore the old state.
	 */
	if (__get_cpu_var(dr7) & DR_GLOBAL_ENABLE_MASK)
	if (hw_breakpoint_active())
		hw_breakpoint_restore();

	set_bit(KVM_REQ_KICK, &vcpu->requests);