[dpdk-dev] [PATCH] crypto/armv8: remove crypto enum list end references

Ruifeng Wang ruifeng.wang at arm.com
Fri Sep 18 07:45:17 CEST 2020


Removed references to RTE_CRYPTO_CIPHER_LIST_END and
RTE_CRYPTO_AUTH_LIST_END.

Signed-off-by: Ruifeng Wang <ruifeng.wang at arm.com>
Reviewed-by: Phil Yang <phil.yang at arm.com>
---
This is follow up of cryptodev change:
http://patches.dpdk.org/patch/76330/
 drivers/crypto/armv8/armv8_pmd_private.h | 6 ++----
 drivers/crypto/armv8/rte_armv8_pmd.c     | 9 ++++++---
 2 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/drivers/crypto/armv8/armv8_pmd_private.h b/drivers/crypto/armv8/armv8_pmd_private.h
index 66b03fb92..75ddba79c 100644
--- a/drivers/crypto/armv8/armv8_pmd_private.h
+++ b/drivers/crypto/armv8/armv8_pmd_private.h
@@ -70,11 +70,9 @@ enum armv8_crypto_auth_mode {
 	ARMV8_CRYPTO_AUTH_LIST_END = ARMV8_CRYPTO_AUTH_NOT_SUPPORTED
 };
 
-#define CRYPTO_ORDER_MAX		ARMV8_CRYPTO_CHAIN_LIST_END
-#define CRYPTO_CIPHER_OP_MAX		ARMV8_CRYPTO_CIPHER_OP_LIST_END
 #define CRYPTO_CIPHER_KEYLEN_MAX	ARMV8_CRYPTO_CIPHER_KEYLEN_LIST_END
-#define CRYPTO_CIPHER_MAX		RTE_CRYPTO_CIPHER_LIST_END
-#define CRYPTO_AUTH_MAX			RTE_CRYPTO_AUTH_LIST_END
+#define CRYPTO_CIPHER_MAX		(RTE_CRYPTO_CIPHER_AES_ECB + 1)
+#define CRYPTO_AUTH_MAX			(RTE_CRYPTO_AUTH_SHA512_HMAC + 1)
 
 #define HMAC_IPAD_VALUE			(0x36)
 #define HMAC_OPAD_VALUE			(0x5C)
diff --git a/drivers/crypto/armv8/rte_armv8_pmd.c b/drivers/crypto/armv8/rte_armv8_pmd.c
index c95729db5..c3db711b7 100644
--- a/drivers/crypto/armv8/rte_armv8_pmd.c
+++ b/drivers/crypto/armv8/rte_armv8_pmd.c
@@ -143,7 +143,8 @@ crypto_chain_order[] = {
 	crypto_func_tbl_t *func_tbl =					\
 				(crypto_chain_order[(order)])[(cop)];	\
 									\
-	((*func_tbl)[(calg)][(aalg)][KEYL(keyl)]);		\
+	((calg >= CRYPTO_CIPHER_MAX) || (aalg >= CRYPTO_AUTH_MAX)) ?	\
+		NULL : ((*func_tbl)[(calg)][(aalg)][KEYL(keyl)]);	\
 })
 
 /*----------------------------------------------------------------------------*/
@@ -188,7 +189,8 @@ crypto_key_sched_dir[] = {
 ({									\
 	crypto_key_sched_tbl_t *ks_tbl = crypto_key_sched_dir[(cop)];	\
 									\
-	((*ks_tbl)[(calg)][KEYL(keyl)]);				\
+	(calg >= CRYPTO_CIPHER_MAX) ?					\
+		NULL : ((*ks_tbl)[(calg)][KEYL(keyl)]);			\
 })
 
 /*----------------------------------------------------------------------------*/
@@ -436,7 +438,8 @@ armv8_crypto_set_session_chained_parameters(struct armv8_crypto_session *sess,
 		return -ENOTSUP;
 	}
 
-	if (unlikely(sess->crypto_func == NULL)) {
+	if (unlikely(sess->crypto_func == NULL ||
+		sess->cipher.key_sched == NULL)) {
 		/*
 		 * If we got here that means that there must be a bug
 		 * in the algorithms selection above. Nevertheless keep
-- 
2.17.1



More information about the dev mailing list