diff options
author | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2009-08-14 09:47:21 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2009-08-15 04:55:46 -0400 |
commit | f1b82746c1e93daf24e1ab9bfbd39bcdb2e7018b (patch) | |
tree | 1403e3662dd3b32cb8b17218bfdd9a640061f654 /arch/s390 | |
parent | 1be396794897f80bfc8774719ba60309a9e3d374 (diff) |
clocksource: Cleanup clocksource selection
If a non high-resolution clocksource is first set as override clock
and then registered it becomes active even if the system is in one-shot
mode. Move the override check from sysfs_override_clocksource to the
clocksource selection. That fixes the bug and simplifies the code. The
check in clocksource_register for double registration of the same
clocksource is removed without replacement.
To find the initial clocksource a new weak function in jiffies.c is
defined that returns the jiffies clocksource. The architecture code
can then override the weak function with a more suitable clocksource,
e.g. the TOD clock on s390.
[ tglx: Folded in a fix from John Stultz ]
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Acked-by: John Stultz <johnstul@us.ibm.com>
Cc: Daniel Walker <dwalker@fifo99.com>
LKML-Reference: <20090814134808.388024160@de.ibm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch/s390')
-rw-r--r-- | arch/s390/kernel/time.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/s390/kernel/time.c b/arch/s390/kernel/time.c index d4c8e9c47c81..afefe514df0f 100644 --- a/arch/s390/kernel/time.c +++ b/arch/s390/kernel/time.c | |||
@@ -205,6 +205,10 @@ static struct clocksource clocksource_tod = { | |||
205 | .flags = CLOCK_SOURCE_IS_CONTINUOUS, | 205 | .flags = CLOCK_SOURCE_IS_CONTINUOUS, |
206 | }; | 206 | }; |
207 | 207 | ||
208 | struct clocksource * __init clocksource_default_clock(void) | ||
209 | { | ||
210 | return &clocksource_tod; | ||
211 | } | ||
208 | 212 | ||
209 | void update_vsyscall(struct timespec *wall_time, struct clocksource *clock) | 213 | void update_vsyscall(struct timespec *wall_time, struct clocksource *clock) |
210 | { | 214 | { |