diff options
author | Ingo Molnar <mingo@elte.hu> | 2009-11-13 19:35:29 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-11-14 09:32:53 -0500 |
commit | 68efa37df779b3e04280598e8b5b3a1919b65fee (patch) | |
tree | 6954b55c7a22d9f13871771437407de13a6edfb4 | |
parent | 688bcaff291cf2fe2734e43f2793d4d05b850518 (diff) |
hw-breakpoints, x86: Fix modular KVM build
This build error:
arch/x86/kvm/x86.c:3655: error: implicit declaration of function 'hw_breakpoint_restore'
Happens because in the CONFIG_KVM=m case there's no 'CONFIG_KVM' define
in the kernel - it's CONFIG_KVM_MODULE in that case.
Make the prototype available unconditionally.
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Prasad <prasad@linux.vnet.ibm.com>
LKML-Reference: <1258114575-32655-1-git-send-email-fweisbec@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
-rw-r--r-- | arch/x86/include/asm/debugreg.h | 2 | ||||
-rw-r--r-- | arch/x86/kernel/hw_breakpoint.c | 4 |
2 files changed, 2 insertions, 4 deletions
diff --git a/arch/x86/include/asm/debugreg.h b/arch/x86/include/asm/debugreg.h index 0f6e92af4227..fdabd8435765 100644 --- a/arch/x86/include/asm/debugreg.h +++ b/arch/x86/include/asm/debugreg.h | |||
@@ -96,9 +96,7 @@ static inline int hw_breakpoint_active(void) | |||
96 | 96 | ||
97 | extern void aout_dump_debugregs(struct user *dump); | 97 | extern void aout_dump_debugregs(struct user *dump); |
98 | 98 | ||
99 | #ifdef CONFIG_KVM | ||
100 | extern void hw_breakpoint_restore(void); | 99 | extern void hw_breakpoint_restore(void); |
101 | #endif | ||
102 | 100 | ||
103 | #endif /* __KERNEL__ */ | 101 | #endif /* __KERNEL__ */ |
104 | 102 | ||
diff --git a/arch/x86/kernel/hw_breakpoint.c b/arch/x86/kernel/hw_breakpoint.c index 57dcee5fa958..752daebe91c6 100644 --- a/arch/x86/kernel/hw_breakpoint.c +++ b/arch/x86/kernel/hw_breakpoint.c | |||
@@ -43,6 +43,7 @@ | |||
43 | 43 | ||
44 | /* Per cpu debug control register value */ | 44 | /* Per cpu debug control register value */ |
45 | DEFINE_PER_CPU(unsigned long, dr7); | 45 | DEFINE_PER_CPU(unsigned long, dr7); |
46 | EXPORT_PER_CPU_SYMBOL(dr7); | ||
46 | 47 | ||
47 | /* Per cpu debug address registers values */ | 48 | /* Per cpu debug address registers values */ |
48 | static DEFINE_PER_CPU(unsigned long, cpu_debugreg[HBP_NUM]); | 49 | static DEFINE_PER_CPU(unsigned long, cpu_debugreg[HBP_NUM]); |
@@ -409,6 +410,7 @@ void aout_dump_debugregs(struct user *dump) | |||
409 | 410 | ||
410 | dump->u_debugreg[7] = dr7; | 411 | dump->u_debugreg[7] = dr7; |
411 | } | 412 | } |
413 | EXPORT_SYMBOL_GPL(aout_dump_debugregs); | ||
412 | 414 | ||
413 | /* | 415 | /* |
414 | * Release the user breakpoints used by ptrace | 416 | * Release the user breakpoints used by ptrace |
@@ -424,7 +426,6 @@ void flush_ptrace_hw_breakpoint(struct task_struct *tsk) | |||
424 | } | 426 | } |
425 | } | 427 | } |
426 | 428 | ||
427 | #ifdef CONFIG_KVM | ||
428 | void hw_breakpoint_restore(void) | 429 | void hw_breakpoint_restore(void) |
429 | { | 430 | { |
430 | set_debugreg(__get_cpu_var(cpu_debugreg[0]), 0); | 431 | set_debugreg(__get_cpu_var(cpu_debugreg[0]), 0); |
@@ -435,7 +436,6 @@ void hw_breakpoint_restore(void) | |||
435 | set_debugreg(__get_cpu_var(dr7), 7); | 436 | set_debugreg(__get_cpu_var(dr7), 7); |
436 | } | 437 | } |
437 | EXPORT_SYMBOL_GPL(hw_breakpoint_restore); | 438 | EXPORT_SYMBOL_GPL(hw_breakpoint_restore); |
438 | #endif | ||
439 | 439 | ||
440 | /* | 440 | /* |
441 | * Handle debug exception notifications. | 441 | * Handle debug exception notifications. |