[v1] crypto/qat: fix reallocate OpenSSL version check

Message ID 20221031174919.642522-1-brian.dooley@intel.com (mailing list archive)
State Superseded, archived
Delegated to: akhil goyal
Headers
Series [v1] crypto/qat: fix reallocate OpenSSL version check |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK
ci/iol-intel-Functional success Functional Testing PASS
ci/intel-Testing success Testing PASS
ci/iol-aarch64-unit-testing success Testing PASS
ci/iol-x86_64-unit-testing success Testing PASS
ci/iol-aarch64-compile-testing success Testing PASS
ci/iol-x86_64-compile-testing success Testing PASS
ci/github-robot: build fail github build: failed

Commit Message

Brian Dooley Oct. 31, 2022, 5:49 p.m. UTC
  Move the ossl_legacy_provider_unload() into the right place for secure
protocol for QAT. Remove unnecessary unload from session destroy.

Fixes: 52d59b92b06d ("crypto/qat: enable OpenSSL legacy provider in session")
Cc: kai.ji@intel.com
CC: stable@dpdk.org
Signed-off-by: Brian Dooley <brian.dooley@intel.com>
---
 drivers/crypto/qat/qat_sym_session.c | 32 ++++++++++++++--------------
 1 file changed, 16 insertions(+), 16 deletions(-)
  

Comments

Ji, Kai Nov. 1, 2022, 5:04 p.m. UTC | #1
Please see my comments below, In addition, in qat_sym_session.c l.2642

return qat_sym_gen_dev_ops[qat_dev_gen].set_session((void *)cdev, session);

the session pointer should cast to (void *) or we can pass session_private directly.

Regards

Kai 

> -----Original Message-----
> From: Dooley, Brian <brian.dooley@intel.com>
> Sent: Monday, October 31, 2022 5:49 PM
> To: Ji, Kai <kai.ji@intel.com>
> Cc: dev@dpdk.org; stable@dpdk.org; gakhil@marvell.com; Coyle, David
> <david.coyle@intel.com>; O'Sullivan, Kevin <kevin.osullivan@intel.com>;
> Dooley, Brian <brian.dooley@intel.com>
> Subject: [PATCH v1] crypto/qat: fix reallocate OpenSSL version check
> 
> Move the ossl_legacy_provider_unload() into the right place for secure protocol
> for QAT. Remove unnecessary unload from session destroy.
> 
> Fixes: 52d59b92b06d ("crypto/qat: enable OpenSSL legacy provider in session")
> Cc: kai.ji@intel.com
> CC: stable@dpdk.org
> Signed-off-by: Brian Dooley <brian.dooley@intel.com>
> ---
>  drivers/crypto/qat/qat_sym_session.c | 32 ++++++++++++++--------------
>  1 file changed, 16 insertions(+), 16 deletions(-)
> 
> diff --git a/drivers/crypto/qat/qat_sym_session.c
> b/drivers/crypto/qat/qat_sym_session.c
> index 71fa595031..6872531d67 100644
> --- a/drivers/crypto/qat/qat_sym_session.c
> +++ b/drivers/crypto/qat/qat_sym_session.c
> @@ -520,19 +520,19 @@ qat_sym_session_configure(struct rte_cryptodev
> *dev,
>  	int ret;
> 
>  #if (OPENSSL_VERSION_NUMBER >= 0x30000000L)
> -		OSSL_PROVIDER * legacy;
> -		OSSL_PROVIDER *deflt;
> +	OSSL_PROVIDER * legacy;
> +	OSSL_PROVIDER *deflt;
> 
> -		/* Load Multiple providers into the default (NULL) library
> context */
> -		legacy = OSSL_PROVIDER_load(NULL, "legacy");
> -		if (legacy == NULL)
> -			return -EINVAL;
> +	/* Load Multiple providers into the default (NULL) library context */
> +	legacy = OSSL_PROVIDER_load(NULL, "legacy");
> +	if (legacy == NULL)
> +		return -EINVAL;
> 
> -		deflt = OSSL_PROVIDER_load(NULL, "default");
> -		if (deflt == NULL) {
> -			OSSL_PROVIDER_unload(legacy);
> -			return -EINVAL;
> -		}
> +	deflt = OSSL_PROVIDER_load(NULL, "default");
> +	if (deflt == NULL) {
> +		OSSL_PROVIDER_unload(legacy);
> +		return -EINVAL;
> +	}

[KJ] please use ossl_legacy_provider_load() helper instead load legacy and default libs manually here.   

>  #endif
>  	ret = qat_sym_session_set_parameters(dev, xform,
>  			CRYPTODEV_GET_SYM_SESS_PRIV(sess),
> @@ -545,8 +545,8 @@ qat_sym_session_configure(struct rte_cryptodev *dev,
>  	}
> 
>  # if (OPENSSL_VERSION_NUMBER >= 0x30000000L)
> -		OSSL_PROVIDER_unload(legacy);
> -		OSSL_PROVIDER_unload(deflt);
> +	OSSL_PROVIDER_unload(legacy);
> +	OSSL_PROVIDER_unload(deflt);

[KJ] you can use ossl_legacy_provider_unload() here

>  # endif
>  	return 0;
>  }
> @@ -2668,6 +2668,9 @@ qat_security_session_create(void *dev,
>  		return ret;
>  	}
> 
> +#if (OPENSSL_VERSION_NUMBER >= 0x30000000L)
> +	ossl_legacy_provider_unload();
> +#endif
>  	return 0;
>  }
> 
> @@ -2684,9 +2687,6 @@ qat_security_session_destroy(void *dev
> __rte_unused,
>  		memset(s, 0, qat_sym_session_get_private_size(dev));
>  	}
> 
> -# if (OPENSSL_VERSION_NUMBER >= 0x30000000L)
> -	ossl_legacy_provider_unload();
> -# endif
>  	return 0;
>  }
> 
> --
> 2.25.1
  

Patch

diff --git a/drivers/crypto/qat/qat_sym_session.c b/drivers/crypto/qat/qat_sym_session.c
index 71fa595031..6872531d67 100644
--- a/drivers/crypto/qat/qat_sym_session.c
+++ b/drivers/crypto/qat/qat_sym_session.c
@@ -520,19 +520,19 @@  qat_sym_session_configure(struct rte_cryptodev *dev,
 	int ret;
 
 #if (OPENSSL_VERSION_NUMBER >= 0x30000000L)
-		OSSL_PROVIDER * legacy;
-		OSSL_PROVIDER *deflt;
+	OSSL_PROVIDER * legacy;
+	OSSL_PROVIDER *deflt;
 
-		/* Load Multiple providers into the default (NULL) library context */
-		legacy = OSSL_PROVIDER_load(NULL, "legacy");
-		if (legacy == NULL)
-			return -EINVAL;
+	/* Load Multiple providers into the default (NULL) library context */
+	legacy = OSSL_PROVIDER_load(NULL, "legacy");
+	if (legacy == NULL)
+		return -EINVAL;
 
-		deflt = OSSL_PROVIDER_load(NULL, "default");
-		if (deflt == NULL) {
-			OSSL_PROVIDER_unload(legacy);
-			return -EINVAL;
-		}
+	deflt = OSSL_PROVIDER_load(NULL, "default");
+	if (deflt == NULL) {
+		OSSL_PROVIDER_unload(legacy);
+		return -EINVAL;
+	}
 #endif
 	ret = qat_sym_session_set_parameters(dev, xform,
 			CRYPTODEV_GET_SYM_SESS_PRIV(sess),
@@ -545,8 +545,8 @@  qat_sym_session_configure(struct rte_cryptodev *dev,
 	}
 
 # if (OPENSSL_VERSION_NUMBER >= 0x30000000L)
-		OSSL_PROVIDER_unload(legacy);
-		OSSL_PROVIDER_unload(deflt);
+	OSSL_PROVIDER_unload(legacy);
+	OSSL_PROVIDER_unload(deflt);
 # endif
 	return 0;
 }
@@ -2668,6 +2668,9 @@  qat_security_session_create(void *dev,
 		return ret;
 	}
 
+#if (OPENSSL_VERSION_NUMBER >= 0x30000000L)
+	ossl_legacy_provider_unload();
+#endif
 	return 0;
 }
 
@@ -2684,9 +2687,6 @@  qat_security_session_destroy(void *dev __rte_unused,
 		memset(s, 0, qat_sym_session_get_private_size(dev));
 	}
 
-# if (OPENSSL_VERSION_NUMBER >= 0x30000000L)
-	ossl_legacy_provider_unload();
-# endif
 	return 0;
 }