Subject: Re: linux-next: Tree for December 10 (x86 nmi_watchdog)

From: Don Zickus <[email-masked]>
Date: Mon, 13 Dec 2010 10:37:19 -0500

On Sun, Dec 12, 2010 at 11:27:02AM +0600, Rakib Mullick wrote:
> On Fri, Dec 10, 2010 at 11:25 PM, Randy Dunlap <[email-masked]> wrote:
> > On Fri, 10 Dec 2010 13:57:46 +1100 Stephen Rothwell wrote:
> >
> >> Hi all,
> >>
> >> Changes since 20101209:
> >
> >
> > arch/x86/kernel/apic/hw_nmi.c:28: error: redefinition of 'touch_nmi_watchdog'
> > include/linux/nmi.h:22: note: previous definition of 'touch_nmi_watchdog' was here
> >
> Hello Randy,
> 
> Please checkout the following patch. Does it work?

This fixes the problem.  Sorry about that.  I need to remember to try more
random config options to catch these things.
----8<---

From: Don Zickus <[email-masked]>
Date: Mon, 13 Dec 2010 10:31:58 -0500
Subject: [PATCH] x86, watchdog: Compile fix when CONFIG_LOCAL_APIC not enabled
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

When adjusting the code to handle removing the old nmi watchdog,
I forgot to consider the compile case when the local apic is not
enabled.  This small change fixes the compile warning:

arch/x86/kernel/apic/hw_nmi.c:28:6: error: redefinition of ‘touch_nmi_watchdog’

Signed-off-by: Don Zickus <[email-masked]>
---
 arch/x86/kernel/apic/hw_nmi.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/arch/x86/kernel/apic/hw_nmi.c b/arch/x86/kernel/apic/hw_nmi.c
index c558e11..93da91d 100644
--- a/arch/x86/kernel/apic/hw_nmi.c
+++ b/arch/x86/kernel/apic/hw_nmi.c
@@ -17,6 +17,7 @@
 #include <linux/nmi.h>
 #include <linux/module.h>
 
+#ifdef ARCH_HAS_NMI_WATCHDOG
 #ifdef CONFIG_HARDLOCKUP_DETECTOR
 u64 hw_nmi_get_sample_period(void)
 {
@@ -31,6 +32,8 @@ void touch_nmi_watchdog(void)
 }
 EXPORT_SYMBOL(touch_nmi_watchdog);
 #endif
+#endif
+
 #ifdef arch_trigger_all_cpu_backtrace
 /* For reliability, we're prepared to waste bits here. */
 static DECLARE_BITMAP(backtrace_mask, NR_CPUS) __read_mostly;
-- 
1.7.3.2