crypto/cnxk: enable allocated queues only
authorShijith Thotton <sthotton@marvell.com>
Fri, 17 Dec 2021 09:19:49 +0000 (14:49 +0530)
committerAkhil Goyal <gakhil@marvell.com>
Fri, 21 Jan 2022 08:40:01 +0000 (09:40 +0100)
Only enable/disable queue pairs that are allocated during cryptodev
start/stop.

Fixes: 52008104e9a6 ("crypto/cnxk: update instruction queue in start/stop")
Cc: stable@dpdk.org
Signed-off-by: Shijith Thotton <sthotton@marvell.com>
Acked-by: Akhil Goyal <gakhil@marvell.com>
drivers/crypto/cnxk/cnxk_cryptodev_ops.c

index a2281fb..21ee09f 100644 (file)
@@ -100,8 +100,13 @@ cnxk_cpt_dev_start(struct rte_cryptodev *dev)
        uint16_t nb_lf = roc_cpt->nb_lf;
        uint16_t qp_id;
 
-       for (qp_id = 0; qp_id < nb_lf; qp_id++)
+       for (qp_id = 0; qp_id < nb_lf; qp_id++) {
+               /* Application may not setup all queue pair */
+               if (roc_cpt->lf[qp_id] == NULL)
+                       continue;
+
                roc_cpt_iq_enable(roc_cpt->lf[qp_id]);
+       }
 
        return 0;
 }
@@ -114,8 +119,12 @@ cnxk_cpt_dev_stop(struct rte_cryptodev *dev)
        uint16_t nb_lf = roc_cpt->nb_lf;
        uint16_t qp_id;
 
-       for (qp_id = 0; qp_id < nb_lf; qp_id++)
+       for (qp_id = 0; qp_id < nb_lf; qp_id++) {
+               if (roc_cpt->lf[qp_id] == NULL)
+                       continue;
+
                roc_cpt_iq_disable(roc_cpt->lf[qp_id]);
+       }
 }
 
 int