From 594302c722202659c4f6150504a51e99a25ee471 Mon Sep 17 00:00:00 2001 From: James Poole Date: Thu, 8 Sep 2016 10:49:16 +0100 Subject: [PATCH] app/testpmd: fix timeout in Rx queue flushing When testpmd is run, the application would hang on the second time that "start" is executed. This is because the timer limit would get multiplied to an unreachably high number. At the start of flush_fwd_rx_queues(), the timer limit now resets to stop it from getting to this high number. The timer has been made local for this function. Fixes: f487715f36f5 ("app/testpmd: add timeout in Rx queue flushing") Signed-off-by: James Poole Acked-by: Ferruh Yigit --- app/test-pmd/testpmd.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index 754de47782..e2403c3f4c 100644 --- a/app/test-pmd/testpmd.c +++ b/app/test-pmd/testpmd.c @@ -271,9 +271,6 @@ uint32_t bypass_timeout = RTE_BYPASS_TMT_OFF; #endif -/* default period is 1 second */ -static uint64_t timer_period = 1; - /* * Ethernet device configuration. */ @@ -884,9 +881,10 @@ flush_fwd_rx_queues(void) uint16_t i; uint8_t j; uint64_t prev_tsc = 0, diff_tsc, cur_tsc, timer_tsc = 0; + uint64_t timer_period; /* convert to number of cycles */ - timer_period *= rte_get_timer_hz(); + timer_period = rte_get_timer_hz(); /* 1 second timeout */ for (j = 0; j < 2; j++) { for (rxp = 0; rxp < cur_fwd_config.nb_fwd_ports; rxp++) { -- 2.20.1