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.doo...@intel.com>
> Sent: Monday, October 31, 2022 5:49 PM
> To: Ji, Kai <kai...@intel.com>
> Cc: dev@dpdk.org; sta...@dpdk.org; gak...@marvell.com; Coyle, David
> <david.co...@intel.com>; O'Sullivan, Kevin <kevin.osulli...@intel.com>;
> Dooley, Brian <brian.doo...@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...@intel.com
> CC: sta...@dpdk.org
> Signed-off-by: Brian Dooley <brian.doo...@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

Reply via email to