Events enqueued to eventdev from the beginning of the circular buffer.
This leads to invalid or already freed events getting enqueued to eventdev
from the circular buffer.

Fixed by enqueuing the events to eventdev from the head pointer of
circular buffer.

Fixes: 7901eac3409a ("eventdev: add crypto adapter implementation")

Signed-off-by: Ganapati Kundapura <ganapati.kundap...@intel.com>
---
v2:
* Updated subject line in commit message

diff --git a/lib/eventdev/rte_event_crypto_adapter.c 
b/lib/eventdev/rte_event_crypto_adapter.c
index ef3dbe9..72deedd 100644
--- a/lib/eventdev/rte_event_crypto_adapter.c
+++ b/lib/eventdev/rte_event_crypto_adapter.c
@@ -669,7 +669,7 @@ eca_circular_buffer_flush_to_evdev(struct 
event_crypto_adapter *adapter,
        else
                return 0;  /* buffer empty */
 
-       nb_ops_flushed =  eca_ops_enqueue_burst(adapter, ops, n);
+       nb_ops_flushed =  eca_ops_enqueue_burst(adapter, &ops[*headp], n);
        bufp->count -= nb_ops_flushed;
        if (!bufp->count) {
                *headp = 0;
-- 
2.6.4

Reply via email to