Commit 3633b047 authored by Jan Glauber's avatar Jan Glauber Committed by Linus Torvalds

[PATCH] s390: hangcheck timer support

Remove useless s390 define from hangcheck-timer, remove wrong definition of a
TOD second and other s390 ifdefs.  Use monotonic_clock instead.

Add hangcheck-timer option, copied from drivers/char/Kconfig.  This is ugly
but unless we have a big Kconfig cleanup we cannot include
drivers/char/Kconfig...
Signed-off-by: default avatarJan Glauber <jan.glauber@de.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 32f65f27
...@@ -992,7 +992,7 @@ config HPET_MMAP ...@@ -992,7 +992,7 @@ config HPET_MMAP
config HANGCHECK_TIMER config HANGCHECK_TIMER
tristate "Hangcheck timer" tristate "Hangcheck timer"
depends on X86 || IA64 || PPC64 || S390 depends on X86 || IA64 || PPC64
help help
The hangcheck-timer module detects when the system has gone The hangcheck-timer module detects when the system has gone
out to lunch past a certain margin. It can reboot the system out to lunch past a certain margin. It can reboot the system
......
...@@ -117,12 +117,9 @@ __setup("hcheck_reboot", hangcheck_parse_reboot); ...@@ -117,12 +117,9 @@ __setup("hcheck_reboot", hangcheck_parse_reboot);
__setup("hcheck_dump_tasks", hangcheck_parse_dump_tasks); __setup("hcheck_dump_tasks", hangcheck_parse_dump_tasks);
#endif /* not MODULE */ #endif /* not MODULE */
#if defined(CONFIG_X86) #if defined(CONFIG_X86) || defined(CONFIG_S390)
# define HAVE_MONOTONIC # define HAVE_MONOTONIC
# define TIMER_FREQ 1000000000ULL # define TIMER_FREQ 1000000000ULL
#elif defined(CONFIG_S390)
/* FA240000 is 1 Second in the IBM time universe (Page 4-38 Principles of Op for zSeries */
# define TIMER_FREQ 0xFA240000ULL
#elif defined(CONFIG_IA64) #elif defined(CONFIG_IA64)
# define TIMER_FREQ ((unsigned long long)local_cpu_data->itc_freq) # define TIMER_FREQ ((unsigned long long)local_cpu_data->itc_freq)
#elif defined(CONFIG_PPC64) #elif defined(CONFIG_PPC64)
...@@ -134,12 +131,7 @@ extern unsigned long long monotonic_clock(void); ...@@ -134,12 +131,7 @@ extern unsigned long long monotonic_clock(void);
#else #else
static inline unsigned long long monotonic_clock(void) static inline unsigned long long monotonic_clock(void)
{ {
# ifdef __s390__
/* returns the TOD. see 4-38 Principles of Op of zSeries */
return get_clock();
# else
return get_cycles(); return get_cycles();
# endif /* __s390__ */
} }
#endif /* HAVE_MONOTONIC */ #endif /* HAVE_MONOTONIC */
...@@ -188,8 +180,6 @@ static int __init hangcheck_init(void) ...@@ -188,8 +180,6 @@ static int __init hangcheck_init(void)
VERSION_STR, hangcheck_tick, hangcheck_margin); VERSION_STR, hangcheck_tick, hangcheck_margin);
#if defined (HAVE_MONOTONIC) #if defined (HAVE_MONOTONIC)
printk("Hangcheck: Using monotonic_clock().\n"); printk("Hangcheck: Using monotonic_clock().\n");
#elif defined(__s390__)
printk("Hangcheck: Using TOD.\n");
#else #else
printk("Hangcheck: Using get_cycles().\n"); printk("Hangcheck: Using get_cycles().\n");
#endif /* HAVE_MONOTONIC */ #endif /* HAVE_MONOTONIC */
......
...@@ -51,6 +51,13 @@ config UNIX98_PTY_COUNT ...@@ -51,6 +51,13 @@ config UNIX98_PTY_COUNT
When not in use, each additional set of 256 PTYs occupy When not in use, each additional set of 256 PTYs occupy
approximately 8 KB of kernel memory on 32-bit architectures. approximately 8 KB of kernel memory on 32-bit architectures.
config HANGCHECK_TIMER
tristate "Hangcheck timer"
help
The hangcheck-timer module detects when the system has gone
out to lunch past a certain margin. It can reboot the system
or merely print a warning.
source "drivers/char/watchdog/Kconfig" source "drivers/char/watchdog/Kconfig"
comment "S/390 character device drivers" comment "S/390 character device drivers"
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment