adapter_stop function is stopping the adapter service using
rte_service_runstate_set() api and waiting until
rte_service_may_be_active() api returns stopped state in an
infinite loop.

This results in hang issues if application calls
rte_service_lcore_stop() before adapter stop.

remove the state check after setting the service state which
avoids running into hang issues. This also makes timer adapter
stop inline with remaining adapters.

Fixes: 47d05b292820 ("eventdev: add timer adapter common code")
Cc: sta...@dpdk.org

Signed-off-by: Naga Harish K S V <s.v.naga.haris...@intel.com>
---
 lib/eventdev/rte_event_timer_adapter.c | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/lib/eventdev/rte_event_timer_adapter.c 
b/lib/eventdev/rte_event_timer_adapter.c
index d2480060c5..8266003ab1 100644
--- a/lib/eventdev/rte_event_timer_adapter.c
+++ b/lib/eventdev/rte_event_timer_adapter.c
@@ -1036,10 +1036,6 @@ swtim_stop(const struct rte_event_timer_adapter *adapter)
        if (ret < 0)
                return ret;
 
-       /* Wait for the service to complete its final iteration */
-       while (rte_service_may_be_active(sw->service_id))
-               rte_pause();
-
        return 0;
 }
 
-- 
2.25.1

Reply via email to