diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2017-05-05 14:49:25 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2017-05-05 14:53:38 +0200 |
commit | e5f2191e7b6920e67dd45b34d9b1c86d04456ffa (patch) | |
tree | 0d3ed87b2008f8d06e27304759dcf3db9ce7ca9f | |
parent | 587afe8133b0218cde15750947e82f199d9ed6aa (diff) | |
download | barebox-e5f2191e7b6920e67dd45b34d9b1c86d04456ffa.tar.gz barebox-e5f2191e7b6920e67dd45b34d9b1c86d04456ffa.tar.xz |
clock: initialize dummy clocksource statically
Assigning the dummy clocksource in a initcall has the problem that
get_time_ns() crashes before that initcall is executed. This happens
when dmesg support is enabled in conjunction with CONFIG_DEBUG_INITCALLS.
In this case the dmesg code wants to have the timestamp of a log
message.
Solve this by setting the current clocksource to the dummy clock
statically and not at runtime. This way we always have a dummy
clock available.
Fixes:
commit 8972eb7ff17ad058a6c6018305bb912138ab0ca2
Author: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Date: Fri Mar 3 13:34:02 2017 +0100
clocksource: move dummy clock source to init_clock
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r-- | common/clock.c | 7 |
1 files changed, 1 insertions, 6 deletions
diff --git a/common/clock.c b/common/clock.c index 0d581c2c7e..f98176dd52 100644 --- a/common/clock.c +++ b/common/clock.c @@ -27,7 +27,6 @@ #include <clock.h> #include <poller.h> -static struct clocksource *current_clock; static uint64_t time_ns; /* @@ -53,11 +52,7 @@ static struct clocksource dummy_cs = { .priority = -1, }; -static int dummy_csrc_init(void) -{ - return init_clock(&dummy_cs); -} -pure_initcall(dummy_csrc_init); +static struct clocksource *current_clock = &dummy_cs; static int dummy_csrc_warn(void) { |