Skip to content

Commit

Permalink
hw-breakpoints: Wrap in the KVM breakpoint active state check
Browse files Browse the repository at this point in the history
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: Jan Kiszka <jan.kiszka@web.de>
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Avi Kivity <avi@redhat.com>
Cc: "K. Prasad" <prasad@linux.vnet.ibm.com>
  • Loading branch information
Frederic Weisbecker committed Nov 10, 2009
1 parent f60d24d commit 59d8eb5
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 1 deletion.
5 changes: 5 additions & 0 deletions arch/x86/include/asm/debugreg.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion arch/x86/kvm/x86.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down

0 comments on commit 59d8eb5

Please sign in to comment.