crypto/aesni_mb: fix zero burst dequeue
authorPablo de Lara <pablo.de.lara.guarch@intel.com>
Fri, 14 Jul 2017 06:48:47 +0000 (07:48 +0100)
committerPablo de Lara <pablo.de.lara.guarch@intel.com>
Wed, 19 Jul 2017 11:10:41 +0000 (14:10 +0300)
In the unlikely scenario that an application
calls rte_cryptodev_dequeue_burst with nb_ops = 0,
there was a job leak, as a job would be created
but would not be populated, as no operation is passed.

Fixes: 0f548b50a160 ("crypto/aesni_mb: process crypto op on dequeue")
Cc: stable@dpdk.org
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Declan Doherty <declan.doherty@intel.com>
drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c

index 13cffaf..fda662f 100644 (file)
@@ -644,6 +644,9 @@ aesni_mb_pmd_dequeue_burst(void *queue_pair, struct rte_crypto_op **ops,
 
        int retval, processed_jobs = 0;
 
+       if (unlikely(nb_ops == 0))
+               return 0;
+
        do {
                /* Get next operation to process from ingress queue */
                retval = rte_ring_dequeue(qp->ingress_queue, (void **)&op);