<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 class="elementToProof"><span style="font-family: "IntelOne Text"; font-size: 10pt; color: rgb(0, 0, 0);">Acked-by: Kai Ji <kai.ji@intel.com></span></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> Power, Ciara <ciara.power@intel.com><br>
<b>Sent:</b> 15 November 2023 16:14<br>
<b>To:</b> dev@dpdk.org <dev@dpdk.org><br>
<b>Cc:</b> Kusztal, ArkadiuszX <arkadiuszx.kusztal@intel.com>; Power, Ciara <ciara.power@intel.com>; stable@dpdk.org <stable@dpdk.org>; Ji, Kai <kai.ji@intel.com><br>
<b>Subject:</b> [PATCH v2] crypto/qat: fix gen3 legacy capabilities</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">When the legacy capability flag was enabled for QAT GEN3,<br>
in the case of the last legacy capability in the list being SM3 or SM4,<br>
when no slice is on the device, the loop continues instead of checking<br>
if the end of the legacy capbilities list has been met.<br>
<br>
To fix this, the check for the end of the legacy capabilities list is<br>
moved to the top of the loop, so it is detected when the last legacy<br>
element is SM and no SM slice exists.<br>
<br>
Fixes: cffb726b7797 ("crypto/qat: enable insecure algorithms")<br>
Cc: stable@dpdk.org<br>
<br>
Signed-off-by: Ciara Power <ciara.power@intel.com><br>
<br>
---<br>
v2: updating sender email<br>
---<br>
drivers/crypto/qat/dev/qat_crypto_pmd_gen3.c | 14 +++++++-------<br>
1 file changed, 7 insertions(+), 7 deletions(-)<br>
<br>
diff --git a/drivers/crypto/qat/dev/qat_crypto_pmd_gen3.c b/drivers/crypto/qat/dev/qat_crypto_pmd_gen3.c<br>
index 0a939161f9..150f77ab0c 100644<br>
--- a/drivers/crypto/qat/dev/qat_crypto_pmd_gen3.c<br>
+++ b/drivers/crypto/qat/dev/qat_crypto_pmd_gen3.c<br>
@@ -232,6 +232,13 @@ qat_sym_crypto_cap_get_gen3(struct qat_cryptodev_private *internals,<br>
}<br>
<br>
for (i = 0; i < capa_num; i++, iter++) {<br>
+ if (unlikely(qat_legacy_capa) && (i == legacy_capa_num)) {<br>
+ capabilities = qat_sym_crypto_caps_gen3;<br>
+ addr += curr_capa;<br>
+ curr_capa = 0;<br>
+ iter = 0;<br>
+ }<br>
+<br>
if (slice_map & ICP_ACCEL_MASK_SM4_SLICE && (<br>
check_cipher_capa(&capabilities[iter],<br>
RTE_CRYPTO_CIPHER_SM4_ECB) ||<br>
@@ -249,13 +256,6 @@ qat_sym_crypto_cap_get_gen3(struct qat_cryptodev_private *internals,<br>
memcpy(addr + curr_capa, capabilities + iter,<br>
sizeof(struct rte_cryptodev_capabilities));<br>
curr_capa++;<br>
-<br>
- if (unlikely(qat_legacy_capa) && (i == legacy_capa_num-1)) {<br>
- capabilities = qat_sym_crypto_caps_gen3;<br>
- addr += curr_capa;<br>
- curr_capa = 0;<br>
- iter = -1;<br>
- }<br>
}<br>
internals->qat_dev_capabilities = internals->capa_mz->addr;<br>
<br>
-- <br>
2.25.1<br>
<br>
</div>
</span></font></div>
</body>
</html>