From ac7c9f725f62a44671c1cd35d791f8a51f93fe06 Mon Sep 17 00:00:00 2001 From: Sergio Gonzalez Monroy Date: Mon, 27 Jul 2015 13:17:55 +0100 Subject: [PATCH] eal: fix tsc frequency Fix error where TSC freq is 0. The logical OR operator evaluates to 1 if any of its operands is different than 0. Error showed later while initializing PMD: EAL: TSC frequency is ~0 KHz PMD: eth_ixgbe_dev_init(): Hardware Initialization Failure: -30 EAL: Error - exiting with code: 1 Cause: Requested device 0000:84:00.0 cannot be used Fixes: 040cf8a41187 ("eal: deduplicate timer functions") Signed-off-by: Sergio Gonzalez Monroy Acked-by: John McNamara Acked-by: Thomas Monjalon --- lib/librte_eal/common/eal_common_timer.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/librte_eal/common/eal_common_timer.c b/lib/librte_eal/common/eal_common_timer.c index 29567034d7..255f995879 100644 --- a/lib/librte_eal/common/eal_common_timer.c +++ b/lib/librte_eal/common/eal_common_timer.c @@ -77,7 +77,11 @@ estimate_tsc_freq(void) void set_tsc_freq(void) { - uint64_t freq = get_tsc_freq() || estimate_tsc_freq(); + uint64_t freq = get_tsc_freq(); + + if (!freq) + freq = estimate_tsc_freq(); + RTE_LOG(INFO, EAL, "TSC frequency is ~%" PRIu64 " KHz\n", freq / 1000); eal_tsc_resolution_hz = freq; } -- 2.20.1