nss-packages-qosmio/qca-nss-cfi/patches/0008-cryptoapi-v2.0-fix-dupe-driver.patch
Sean Khan 51300e4df4 nss-cfi: fix issue with kernel reporting duplicate driver
Kernel 6.1+ expects the driver to be registered with a unique name.

Signed-off-by: Sean Khan <datapronix@protonmail.com>
2025-04-17 00:46:12 -04:00

127 lines
4.6 KiB
Diff

--- a/cryptoapi/v2.0/nss_cryptoapi.c
+++ b/cryptoapi/v2.0/nss_cryptoapi.c
@@ -896,7 +896,7 @@ struct aead_alg cryptoapi_aead_algs[] =
*/
.base = {
.cra_name = "echainiv(authenc(hmac(sha1),cbc(aes)))",
- .cra_driver_name = "nss-hmac-sha1-cbc-aes",
+ .cra_driver_name = "nss-hmac-sha1-cbc-aes-echainiv",
.cra_priority = 10000,
.cra_flags = CRYPTO_ALG_ASYNC,
.cra_blocksize = AES_BLOCK_SIZE,
@@ -961,7 +961,7 @@ struct aead_alg cryptoapi_aead_algs[] =
*/
.base = {
.cra_name = "echainiv(authenc(hmac(sha256),cbc(aes)))",
- .cra_driver_name = "nss-hmac-sha256-cbc-aes",
+ .cra_driver_name = "nss-hmac-sha256-cbc-aes-echainiv",
.cra_priority = 10000,
.cra_flags = CRYPTO_ALG_ASYNC,
.cra_blocksize = AES_BLOCK_SIZE,
@@ -1070,7 +1070,7 @@ struct aead_alg cryptoapi_aead_algs[] =
*/
.base = {
.cra_name = "echainiv(authenc(hmac(sha384),cbc(aes)))",
- .cra_driver_name = "nss-hmac-sha384-cbc-aes",
+ .cra_driver_name = "nss-hmac-sha384-cbc-aes-echainiv",
.cra_priority = 10000,
.cra_flags = CRYPTO_ALG_ASYNC,
.cra_blocksize = AES_BLOCK_SIZE,
@@ -1093,7 +1093,7 @@ struct aead_alg cryptoapi_aead_algs[] =
*/
.base = {
.cra_name = "echainiv(authenc(hmac(sha512),cbc(aes)))",
- .cra_driver_name = "nss-hmac-sha512-cbc-aes",
+ .cra_driver_name = "nss-hmac-sha512-cbc-aes-echainiv",
.cra_priority = 10000,
.cra_flags = CRYPTO_ALG_ASYNC,
.cra_blocksize = AES_BLOCK_SIZE,
@@ -1116,7 +1116,7 @@ struct aead_alg cryptoapi_aead_algs[] =
*/
.base = {
.cra_name = "echainiv(authenc(hmac(sha1),cbc(des3_ede)))",
- .cra_driver_name = "nss-hmac-sha1-cbc-3des",
+ .cra_driver_name = "nss-hmac-sha1-cbc-3des-echainiv",
.cra_priority = 300,
.cra_flags = CRYPTO_ALG_ASYNC,
.cra_blocksize = DES3_EDE_BLOCK_SIZE,
@@ -1139,7 +1139,7 @@ struct aead_alg cryptoapi_aead_algs[] =
*/
.base = {
.cra_name = "echainiv(authenc(hmac(sha256),cbc(des3_ede)))",
- .cra_driver_name = "nss-hmac-sha256-cbc-3des",
+ .cra_driver_name = "nss-hmac-sha256-cbc-3des-echainiv",
.cra_priority = 300,
.cra_flags = CRYPTO_ALG_ASYNC,
.cra_blocksize = DES3_EDE_BLOCK_SIZE,
@@ -1160,7 +1160,7 @@ struct aead_alg cryptoapi_aead_algs[] =
{
.base = {
.cra_name = "authenc(hmac(sha1),cbc(aes))",
- .cra_driver_name = "nss-hmac-sha1-cbc-aes",
+ .cra_driver_name = "nss-hmac-sha1-cbc-aes-auth",
.cra_priority = 10000,
.cra_flags = CRYPTO_ALG_ASYNC,
.cra_blocksize = AES_BLOCK_SIZE,
@@ -1183,7 +1183,7 @@ struct aead_alg cryptoapi_aead_algs[] =
*/
.base = {
.cra_name = "authenc(hmac(sha256),cbc(aes))",
- .cra_driver_name = "nss-hmac-sha256-cbc-aes",
+ .cra_driver_name = "nss-hmac-sha256-cbc-aes-auth",
.cra_priority = 10000,
.cra_flags = CRYPTO_ALG_ASYNC,
.cra_blocksize = AES_BLOCK_SIZE,
@@ -1206,7 +1206,7 @@ struct aead_alg cryptoapi_aead_algs[] =
*/
.base = {
.cra_name = "authenc(hmac(sha384),cbc(aes))",
- .cra_driver_name = "nss-hmac-sha384-cbc-aes",
+ .cra_driver_name = "nss-hmac-sha384-cbc-aes-auth",
.cra_priority = 10000,
.cra_flags = CRYPTO_ALG_ASYNC,
.cra_blocksize = AES_BLOCK_SIZE,
@@ -1298,7 +1298,7 @@ struct aead_alg cryptoapi_aead_algs[] =
*/
.base = {
.cra_name = "rfc4106(gcm(aes))",
- .cra_driver_name = "nss-rfc4106-gcm",
+ .cra_driver_name = "nss-rfc4106-gcm-aes128",
.cra_priority = 10000,
.cra_flags = CRYPTO_ALG_ASYNC,
.cra_blocksize = AES_BLOCK_SIZE,
@@ -1321,7 +1321,7 @@ struct aead_alg cryptoapi_aead_algs[] =
*/
.base = {
.cra_name = "seqiv(rfc4106(gcm(aes)))",
- .cra_driver_name = "nss-rfc4106-gcm",
+ .cra_driver_name = "nss-seqiv-rfc4106-gcm",
.cra_priority = 10000,
.cra_flags = CRYPTO_ALG_ASYNC,
.cra_blocksize = AES_BLOCK_SIZE,
@@ -2166,6 +2166,7 @@ static const struct file_operations ctx_
void nss_cryptoapi_add_ctx2debugfs(struct nss_cryptoapi_ctx *ctx)
{
char buf[NSS_CRYPTOAPI_DEBUGFS_MAX_NAME] = {0};
+ struct dentry *existing;
if (!g_cryptoapi.root) {
nss_cfi_err("%px: DebugFS root directory missing(%px)\n", &g_cryptoapi, ctx);
@@ -2173,6 +2174,16 @@ void nss_cryptoapi_add_ctx2debugfs(struc
}
snprintf(buf, sizeof(buf), "ctx%d", ctx->sid);
+
+ /* Check if the directory already exists */
+ existing = debugfs_lookup(buf, g_cryptoapi.root);
+ if (existing) {
+ /* Directory already exists, store it and return */
+ ctx->dentry = existing;
+ nss_cfi_info("%px: Context debugfs entry already exists for ctx%d\n", ctx, ctx->sid);
+ return;
+ }
+
ctx->dentry = debugfs_create_dir(buf, g_cryptoapi.root);
if (!ctx->dentry) {
nss_cfi_err("%px: Unable to create context debugfs entry", ctx);