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>
This commit is contained in:
committed by
Thomas Gleixner
parent
1be3967948
commit
f1b82746c1
@@ -269,7 +269,7 @@ static void change_clocksource(void)
|
||||
|
||||
new = clocksource_get_next();
|
||||
|
||||
if (clock == new)
|
||||
if (!new || clock == new)
|
||||
return;
|
||||
|
||||
clocksource_forward_now();
|
||||
@@ -446,7 +446,7 @@ void __init timekeeping_init(void)
|
||||
|
||||
ntp_init();
|
||||
|
||||
clock = clocksource_get_next();
|
||||
clock = clocksource_default_clock();
|
||||
if (clock->enable)
|
||||
clock->enable(clock);
|
||||
/* set mult_orig on enable */
|
||||
|
Reference in New Issue
Block a user