From: Jan Glauber 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: Jan Glauber Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens Signed-off-by: Andrew Morton --- drivers/char/Kconfig | 2 +- drivers/char/hangcheck-timer.c | 12 +----------- drivers/s390/Kconfig | 7 +++++++ 3 files changed, 9 insertions(+), 12 deletions(-) diff -puN drivers/char/hangcheck-timer.c~s390-hangcheck-timer-support drivers/char/hangcheck-timer.c --- devel/drivers/char/hangcheck-timer.c~s390-hangcheck-timer-support 2006-01-18 20:11:32.000000000 -0800 +++ devel-akpm/drivers/char/hangcheck-timer.c 2006-01-18 20:11:32.000000000 -0800 @@ -117,12 +117,9 @@ __setup("hcheck_reboot", hangcheck_parse __setup("hcheck_dump_tasks", hangcheck_parse_dump_tasks); #endif /* not MODULE */ -#if defined(CONFIG_X86) +#if defined(CONFIG_X86) || defined(CONFIG_S390) # define HAVE_MONOTONIC # 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) # define TIMER_FREQ ((unsigned long long)local_cpu_data->itc_freq) #elif defined(CONFIG_PPC64) @@ -134,12 +131,7 @@ extern unsigned long long monotonic_cloc #else 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(); -# endif /* __s390__ */ } #endif /* HAVE_MONOTONIC */ @@ -188,8 +180,6 @@ static int __init hangcheck_init(void) VERSION_STR, hangcheck_tick, hangcheck_margin); #if defined (HAVE_MONOTONIC) printk("Hangcheck: Using monotonic_clock().\n"); -#elif defined(__s390__) - printk("Hangcheck: Using TOD.\n"); #else printk("Hangcheck: Using get_cycles().\n"); #endif /* HAVE_MONOTONIC */ diff -puN drivers/char/Kconfig~s390-hangcheck-timer-support drivers/char/Kconfig --- devel/drivers/char/Kconfig~s390-hangcheck-timer-support 2006-01-18 20:11:32.000000000 -0800 +++ devel-akpm/drivers/char/Kconfig 2006-01-18 20:11:32.000000000 -0800 @@ -992,7 +992,7 @@ config HPET_MMAP config HANGCHECK_TIMER tristate "Hangcheck timer" - depends on X86 || IA64 || PPC64 || S390 + depends on X86 || IA64 || PPC64 help The hangcheck-timer module detects when the system has gone out to lunch past a certain margin. It can reboot the system diff -puN drivers/s390/Kconfig~s390-hangcheck-timer-support drivers/s390/Kconfig --- devel/drivers/s390/Kconfig~s390-hangcheck-timer-support 2006-01-18 20:11:32.000000000 -0800 +++ devel-akpm/drivers/s390/Kconfig 2006-01-18 20:11:32.000000000 -0800 @@ -51,6 +51,13 @@ config UNIX98_PTY_COUNT When not in use, each additional set of 256 PTYs occupy 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" comment "S/390 character device drivers" _