mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 10:11:27 +01:00
watchdog: Move watchdog from being x86 specific to common code
Augment watchdog_setup() to be able to possibly return an error, and introduce watchdog_enabled() as a better alternative to knowing the architectures internal details. This patch does not change the x86 implementaion, beyond making it compile. For header files, some includes of xen/nmi.h were only for the watchdog functions, so are replaced rather than adding an extra include of xen/watchdog.h Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> Acked-by: Keir Fraser <keir@xen.org>
This commit is contained in:
1 parent
910daaf5aa
commit
c8177e691f
12 files changed
+51
-10
No files matched your search
+7
-1
@@ -410,7 +410,12 @@ void watchdog_enable(void)
|
||||
atomic_dec(&watchdog_disable_count);
|
||||
}
|
||||
|
||||
void __init watchdog_setup(void)
|
||||
bool_t watchdog_enabled(void)
|
||||
{
|
||||
return !atomic_read(&watchdog_disable_count);
|
||||
}
|
||||
|
||||
int __init watchdog_setup(void)
|
||||
{
|
||||
unsigned int cpu;
|
||||
|
||||
@@ -423,6 +428,7 @@ void __init watchdog_setup(void)
|
||||
register_cpu_notifier(&cpu_nmi_nfb);
|
||||
|
||||
watchdog_enable();
|
||||
return 0;
|
||||
}
|
||||
|
||||
void nmi_watchdog_tick(struct cpu_user_regs * regs)
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
#include <xen/pfn.h>
|
||||
#include <xen/nodemask.h>
|
||||
#include <xen/tmem_xen.h> /* for opt_tmem only */
|
||||
#include <xen/watchdog.h>
|
||||
#include <public/version.h>
|
||||
#include <compat/platform.h>
|
||||
#include <compat/xen.h>
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
#include <xen/delay.h>
|
||||
#include <xen/dmi.h>
|
||||
#include <xen/irq.h>
|
||||
#include <xen/nmi.h>
|
||||
#include <xen/watchdog.h>
|
||||
#include <xen/console.h>
|
||||
#include <xen/shutdown.h>
|
||||
#include <xen/acpi.h>
|
||||
|
||||
@@ -49,6 +49,7 @@
|
||||
#include <xen/kexec.h>
|
||||
#include <xen/trace.h>
|
||||
#include <xen/paging.h>
|
||||
#include <xen/watchdog.h>
|
||||
#include <asm/system.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/atomic.h>
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
#include <xen/shutdown.h>
|
||||
#include <xen/nmi.h>
|
||||
#include <xen/guest_access.h>
|
||||
#include <xen/watchdog.h>
|
||||
#include <asm/current.h>
|
||||
#include <asm/flushtlb.h>
|
||||
#include <asm/traps.h>
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@
|
||||
#include <xen/ctype.h>
|
||||
#include <xen/errno.h>
|
||||
#include <xen/guest_access.h>
|
||||
#include <xen/nmi.h>
|
||||
#include <xen/watchdog.h>
|
||||
#include <xen/sched.h>
|
||||
#include <xen/types.h>
|
||||
#include <xen/hypercall.h>
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
#include <xen/ctype.h>
|
||||
#include <xen/perfc.h>
|
||||
#include <xen/mm.h>
|
||||
#include <xen/nmi.h>
|
||||
#include <xen/watchdog.h>
|
||||
#include <xen/init.h>
|
||||
#include <asm/debugger.h>
|
||||
#include <asm/div64.h>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#include <xen/sched.h>
|
||||
#include <xen/domain.h>
|
||||
#include <xen/delay.h>
|
||||
#include <xen/nmi.h>
|
||||
#include <xen/watchdog.h>
|
||||
#include <xen/shutdown.h>
|
||||
#include <xen/console.h>
|
||||
#ifdef CONFIG_KEXEC
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
#include <xen/keyhandler.h>
|
||||
#include <xen/delay.h>
|
||||
#include <xen/guest_access.h>
|
||||
#include <xen/nmi.h>
|
||||
#include <xen/watchdog.h>
|
||||
#include <xen/shutdown.h>
|
||||
#include <xen/video.h>
|
||||
#include <xen/kexec.h>
|
||||
|
||||
@@ -49,6 +49,7 @@
|
||||
|
||||
#define CONFIG_XENOPROF 1
|
||||
#define CONFIG_KEXEC 1
|
||||
#define CONFIG_WATCHDOG 1
|
||||
|
||||
#define HZ 100
|
||||
|
||||
|
||||
@@ -41,8 +41,4 @@ long register_guest_nmi_callback(unsigned long address);
|
||||
*/
|
||||
long unregister_guest_nmi_callback(void);
|
||||
|
||||
void watchdog_disable(void);
|
||||
void watchdog_enable(void);
|
||||
void watchdog_setup(void);
|
||||
|
||||
#endif /* ASM_NMI_H */
|
||||
@@ -0,0 +1,35 @@
|
||||
/******************************************************************************
|
||||
* watchdog.h
|
||||
*
|
||||
* Common watchdog code
|
||||
*/
|
||||
|
||||
#ifndef __XEN_WATCHDOG_H__
|
||||
#define __XEN_WATCHDOG_H__
|
||||
|
||||
#include <xen/types.h>
|
||||
|
||||
#ifdef CONFIG_WATCHDOG
|
||||
|
||||
/* Try to set up a watchdog. */
|
||||
int watchdog_setup(void);
|
||||
|
||||
/* Enable the watchdog. */
|
||||
void watchdog_enable(void);
|
||||
|
||||
/* Disable the watchdog. */
|
||||
void watchdog_disable(void);
|
||||
|
||||
/* Is the watchdog currently enabled. */
|
||||
bool_t watchdog_enabled(void);
|
||||
|
||||
#else
|
||||
|
||||
#define watchdog_setup() ((void)0)
|
||||
#define watchdog_enable() ((void)0)
|
||||
#define watchdog_disable() ((void)0)
|
||||
#define watchdog_enabled() ((void)0)
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* __XEN_WATCHDOG_H__ */
|
||||