#include <linux/module.h>
#include <linux/sysdev.h>
#include <linux/sysctl.h>
+ #include <linux/percpu.h>
#include <linux/kprobes.h>
#include <linux/cpumask.h>
+ #include <linux/kernel_stat.h>
#include <linux/kdebug.h>
+ #include <linux/smp.h>
+#include <asm/i8259.h>
+#include <asm/io_apic.h>
+#include <asm/smp.h>
+#include <asm/nmi.h>
#include <asm/proto.h>
+ #include <asm/timer.h>
+
#include <asm/mce.h>
#include <mach_traps.h>
kfree(prev_nmi_count);
return 0;
-
error:
-#ifdef CONFIG_X86_32
- timer_ack = !cpu_has_tsc;
-#endif
+ if (nmi_watchdog == NMI_IO_APIC && !timer_through_8259)
+ disable_8259A_irq(0);
-
return -1;
}
*/
int do_nmi_callback(struct pt_regs *regs, int cpu);
-#ifdef CONFIG_PM
-
-/** Replace the PM callback routine for NMI. */
-struct pm_dev *set_nmi_pm_callback(pm_callback callback);
-
-/** Unset the PM callback routine back to the default. */
-void unset_nmi_pm_callback(struct pm_dev *dev);
-
-#else
-
-static inline struct pm_dev *set_nmi_pm_callback(pm_callback callback)
-{
- return 0;
-}
-
-static inline void unset_nmi_pm_callback(struct pm_dev *dev)
-{
-}
-
-#endif /* CONFIG_PM */
-
#ifdef CONFIG_X86_64
extern void default_do_nmi(struct pt_regs *);
- extern void die_nmi(char *str, struct pt_regs *regs, int do_panic);
- extern void nmi_watchdog_default(void);
- #else
- #define nmi_watchdog_default() do {} while (0)
#endif
+ extern void die_nmi(char *str, struct pt_regs *regs, int do_panic);
+ extern void nmi_watchdog_default(void);
extern int check_nmi_watchdog(void);
extern int nmi_watchdog_enabled;
extern int avail_to_resrv_perfctr_nmi_bit(unsigned int);