Update the event crypto adapter's service function to report as idle (i.e., return -EAGAIN) in case no crypto operations were performed.
Signed-off-by: Mattias Rönnblom <mattias.ronnb...@ericsson.com> --- lib/eventdev/rte_event_crypto_adapter.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/eventdev/rte_event_crypto_adapter.c b/lib/eventdev/rte_event_crypto_adapter.c index a11cbcf4f3..59777726f6 100644 --- a/lib/eventdev/rte_event_crypto_adapter.c +++ b/lib/eventdev/rte_event_crypto_adapter.c @@ -771,7 +771,7 @@ eca_crypto_adapter_deq_run(struct event_crypto_adapter *adapter, return nb_deq; } -static void +static int eca_crypto_adapter_run(struct event_crypto_adapter *adapter, unsigned int max_ops) { @@ -791,22 +791,26 @@ eca_crypto_adapter_run(struct event_crypto_adapter *adapter, } - if (ops_left == max_ops) + if (ops_left == max_ops) { rte_event_maintain(adapter->eventdev_id, adapter->event_port_id, 0); + return -EAGAIN; + } else + return 0; } static int eca_service_func(void *args) { struct event_crypto_adapter *adapter = args; + int ret; if (rte_spinlock_trylock(&adapter->lock) == 0) return 0; - eca_crypto_adapter_run(adapter, adapter->max_nb); + ret = eca_crypto_adapter_run(adapter, adapter->max_nb); rte_spinlock_unlock(&adapter->lock); - return 0; + return ret; } static int -- 2.34.1