aboutsummaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/x86/include/asm/debugreg.h5
-rw-r--r--arch/x86/kvm/x86.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/arch/x86/include/asm/debugreg.h b/arch/x86/include/asm/debugreg.h
index f1b673f0823..0f6e92af422 100644
--- a/arch/x86/include/asm/debugreg.h
+++ b/arch/x86/include/asm/debugreg.h
@@ -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
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 22dee7aa781..3817220cc86 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -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);