diff options
author | Michael Olbrich <m.olbrich@pengutronix.de> | 2017-03-14 10:37:29 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2017-03-15 08:26:54 +0100 |
commit | 249b40be7ec6bd73d2d53c7728a369f9d472b0d4 (patch) | |
tree | 38aa7222d182b83f970d84a2e35378efbf71df67 | |
parent | 2846e53d2d41742348459676edab737edf90604a (diff) | |
download | barebox-249b40be7ec6bd73d2d53c7728a369f9d472b0d4.tar.gz barebox-249b40be7ec6bd73d2d53c7728a369f9d472b0d4.tar.xz |
efi: clocksoure: make sure the meassured frequency is valid
Some EFI implementations have a even slower tick rate and the meassured
frequency may be zero.
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r-- | drivers/clocksource/efi.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/clocksource/efi.c b/drivers/clocksource/efi.c index 89906c452e..fb5b7ca63d 100644 --- a/drivers/clocksource/efi.c +++ b/drivers/clocksource/efi.c @@ -71,6 +71,10 @@ static int efi_cs_init(struct clocksource *cs) uint64_t nb_100ns; freq = ticks_freq_x86(); + if (freq == 0) { + BS->close_event(efi_cs_evt); + return -ENODEV; + } nb_100ns = 10 * 1000 * 1000 / freq; pr_warn("EFI Event timer too slow freq = %llu Hz\n", freq); efiret = BS->set_timer(efi_cs_evt, EFI_TIMER_PERIODIC, nb_100ns); |