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 tx adapter stop inline with remaining adapters. Fixes: a3bbf2e09756 ("eventdev: add eth Tx adapter implementation") Cc: sta...@dpdk.org Signed-off-by: Naga Harish K S V <s.v.naga.haris...@intel.com> --- lib/eventdev/rte_event_eth_tx_adapter.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/lib/eventdev/rte_event_eth_tx_adapter.c b/lib/eventdev/rte_event_eth_tx_adapter.c index 3251dad61f..41509ba750 100644 --- a/lib/eventdev/rte_event_eth_tx_adapter.c +++ b/lib/eventdev/rte_event_eth_tx_adapter.c @@ -475,10 +475,6 @@ txa_service_ctrl(uint8_t id, int start) ret = rte_service_runstate_set(txa->service_id, start); rte_spinlock_unlock(&txa->tx_lock); - if (ret == 0 && !start) { - while (rte_service_may_be_active(txa->service_id)) - rte_pause(); - } return ret; } -- 2.23.0