In case of CRYPTO_ADAPTER_OPS_BUFFER_SZ is modified,
eca_circular_buffer_space_for_batch() also needs to be updated
to check maximum number of crypto ops can be accommodated in
circular buffer when CPM becomes busy.

Defined MAX_OPS_IN_BUFFER which contains size for batch of dequeued events
and redefined CRYPTO_ADAPTER_OPS_BUFFER_SZ in terms of MAX_OPS_IN_BUFFER.

This patch makes eca_circular_buffer_space_for_batch() independent of
circular buffer changes.

Signed-off-by: Ganapati Kundapura <ganapati.kundap...@intel.com>

diff --git a/lib/eventdev/rte_event_crypto_adapter.c 
b/lib/eventdev/rte_event_crypto_adapter.c
index f6c1e53..52a28e5 100644
--- a/lib/eventdev/rte_event_crypto_adapter.c
+++ b/lib/eventdev/rte_event_crypto_adapter.c
@@ -25,7 +25,14 @@
 #define CRYPTO_ADAPTER_MEM_NAME_LEN 32
 #define CRYPTO_ADAPTER_MAX_EV_ENQ_RETRIES 100
 
-#define CRYPTO_ADAPTER_OPS_BUFFER_SZ (BATCH_SIZE + BATCH_SIZE)
+/* MAX_OPS_IN_BUFFER contains size for  batch of dequeued events */
+#define MAX_OPS_IN_BUFFER BATCH_SIZE
+
+/* CRYPTO_ADAPTER_OPS_BUFFER_SZ to accommodate MAX_OPS_IN_BUFFER +
+ * additional space for one batch
+ */
+#define CRYPTO_ADAPTER_OPS_BUFFER_SZ (MAX_OPS_IN_BUFFER + BATCH_SIZE)
+
 #define CRYPTO_ADAPTER_BUFFER_SZ 1024
 
 /* Flush an instance's enqueue buffers every CRYPTO_ENQ_FLUSH_THRESHOLD
@@ -188,7 +195,8 @@ eca_circular_buffer_batch_ready(struct 
crypto_ops_circular_buffer *bufp)
 static inline bool
 eca_circular_buffer_space_for_batch(struct crypto_ops_circular_buffer *bufp)
 {
-       return (bufp->size - bufp->count) >= BATCH_SIZE;
+       /* circular buffer can have atmost MAX_OPS_IN_BUFFER */
+       return (bufp->size - bufp->count) >= MAX_OPS_IN_BUFFER;
 }
 
 static inline void
-- 
2.6.4

Reply via email to