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