<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: "IntelOne Text"; font-size: 10pt; color: rgb(0, 0, 0);">
Acked-by: Kai Ji <kai.ji@intel.com></div>
<div id="appendonsend"></div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> Radu Nicolau <radu.nicolau@intel.com><br>
<b>Sent:</b> 06 July 2026 17:57<br>
<b>To:</b> dev@dpdk.org <dev@dpdk.org><br>
<b>Cc:</b> maxime.coquelin@redhat.com <maxime.coquelin@redhat.com>; david.marchand@redhat.com <david.marchand@redhat.com>; Nicolau, Radu <radu.nicolau@intel.com>; jianjay.zhou@huawei.com <jianjay.zhou@huawei.com>; Jiang, YuX <yux.jiang@intel.com>; Fan Zhang
<fanzhang.oss@gmail.com><br>
<b>Subject:</b> [PATCH v2] crypto/virtio: cookies are allocated from mempool</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">The Rx/Tx functions allocate cookies as needed, no need to<br>
allocate and free from heap.<br>
<br>
Fixes: 6f0175ff53e0 ("crypto/virtio: support basic PMD ops")<br>
Cc: jianjay.zhou@huawei.com<br>
<br>
Signed-off-by: Radu Nicolau <radu.nicolau@intel.com><br>
Tested-by: Yu Jiang <yux.jiang@intel.com><br>
---<br>
v2: removed redundant mempool free<br>
<br>
drivers/crypto/virtio/virtio_cryptodev.c | 23 -----------------------<br>
1 file changed, 23 deletions(-)<br>
<br>
diff --git a/drivers/crypto/virtio/virtio_cryptodev.c b/drivers/crypto/virtio/virtio_cryptodev.c<br>
index 6f079f15f6..d70651646e 100644<br>
--- a/drivers/crypto/virtio/virtio_cryptodev.c<br>
+++ b/drivers/crypto/virtio/virtio_cryptodev.c<br>
@@ -68,7 +68,6 @@ void<br>
virtio_crypto_queue_release(struct virtqueue *vq)<br>
{<br>
struct virtio_crypto_hw *hw;<br>
- uint16_t i;<br>
<br>
PMD_INIT_FUNC_TRACE();<br>
<br>
@@ -80,9 +79,6 @@ virtio_crypto_queue_release(struct virtqueue *vq)<br>
hw->vqs[vq->vq_queue_index] = NULL;<br>
rte_memzone_free(vq->mz);<br>
rte_mempool_free(vq->mpool);<br>
- for (i = 0; i < vq->vq_nentries; i++)<br>
- rte_free(vq->vq_descx[i].cookie);<br>
-<br>
rte_free(vq);<br>
}<br>
}<br>
@@ -102,8 +98,6 @@ virtio_crypto_queue_setup(struct rte_cryptodev *dev,<br>
unsigned int vq_size;<br>
struct virtio_crypto_hw *hw = dev->data->dev_private;<br>
struct virtqueue *vq = NULL;<br>
- uint32_t i = 0;<br>
- uint32_t j;<br>
<br>
PMD_INIT_FUNC_TRACE();<br>
<br>
@@ -175,29 +169,12 @@ virtio_crypto_queue_setup(struct rte_cryptodev *dev,<br>
"Cannot create mempool");<br>
goto mpool_create_err;<br>
}<br>
- for (i = 0; i < nb_desc; i++) {<br>
- vq->vq_descx[i].cookie =<br>
- rte_zmalloc("crypto PMD op cookie pointer",<br>
- sizeof(struct virtio_crypto_op_cookie),<br>
- RTE_CACHE_LINE_SIZE);<br>
- if (vq->vq_descx[i].cookie == NULL) {<br>
- VIRTIO_CRYPTO_DRV_LOG_ERR("Failed to "<br>
- "alloc mem for cookie");<br>
- goto cookie_alloc_err;<br>
- }<br>
- }<br>
}<br>
<br>
*pvq = vq;<br>
<br>
return 0;<br>
<br>
-cookie_alloc_err:<br>
- rte_mempool_free(vq->mpool);<br>
- if (i != 0) {<br>
- for (j = 0; j < i; j++)<br>
- rte_free(vq->vq_descx[j].cookie);<br>
- }<br>
mpool_create_err:<br>
rte_free(vq);<br>
return -ENOMEM;<br>
-- <br>
2.52.0<br>
<br>
</div>
</span></font></div>
</body>
</html>