Skip to contentSkip to conversation

crypto: cavium/zip - fix collision with generic cra_driver_name

PATCH In review Eric Biggers 3 participants 4 messages Feb 23, 2019 – Feb 28, 2019 Crypto API

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 crypto: cavium/zip - fix collision with generic cra_driver_name

From: Eric Biggers <[email protected]>

The cavium/zip implementation of the deflate compression algorithm is incorrectly being registered under the generic driver name, which prevents the generic implementation from being registered with the crypto API when CONFIG_CRYPTO_DEV_CAVIUM_ZIP=y. Similarly the lzs algorithm (which does not currently have a generic implementation...) is incorrectly being registered as lzs-generic.

Fix the naming collision by adding a suffix "-cavium" to the cra_driver_name of the cavium/zip algorithms.

Fixes 640035a2dc55 ("crypto: zip - Add ThunderX ZIP driver core")
Cc Mahipal Challa <[email protected]>
Cc Jan Glauber <[email protected]>
---
 drivers/crypto/cavium/zip/zip_main.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
drivers/crypto/cavium/zip/zip_main.c +4 -2
index e6b09e784e666..a8447a3cf3665 100644
@@ -351,6 +351,7 @@ static struct pci_driver zip_driver = {
 
 static struct crypto_alg zip_comp_deflate = {
 	.cra_name		= "deflate",
+	.cra_driver_name	= "deflate-cavium",
 	.cra_flags		= CRYPTO_ALG_TYPE_COMPRESS,
 	.cra_ctxsize		= sizeof(struct zip_kernel_ctx),
 	.cra_priority           = 300,
@@ -365,6 +366,7 @@ static struct crypto_alg zip_comp_deflate = {
 
 static struct crypto_alg zip_comp_lzs = {
 	.cra_name		= "lzs",
+	.cra_driver_name	= "lzs-cavium",
 	.cra_flags		= CRYPTO_ALG_TYPE_COMPRESS,
 	.cra_ctxsize		= sizeof(struct zip_kernel_ctx),
 	.cra_priority           = 300,
@@ -384,7 +386,7 @@ static struct scomp_alg zip_scomp_deflate = {
 	.decompress		= zip_scomp_decompress,
 	.base			= {
 		.cra_name		= "deflate",
-		.cra_driver_name	= "deflate-scomp",
+		.cra_driver_name	= "deflate-scomp-cavium",
 		.cra_module		= THIS_MODULE,
 		.cra_priority           = 300,
 	}
@@ -397,7 +399,7 @@ static struct scomp_alg zip_scomp_lzs = {
 	.decompress		= zip_scomp_decompress,
 	.base			= {
 		.cra_name		= "lzs",
-		.cra_driver_name	= "lzs-scomp",
+		.cra_driver_name	= "lzs-scomp-cavium",
 		.cra_module		= THIS_MODULE,
 		.cra_priority           = 300,
 	}
Signature · 1 line
2.20.1
#1 lore raw
Quoted 11 lines · Eric Biggers

From: Eric Biggers <[email protected]>

The cavium/zip implementation of the deflate compression algorithm is incorrectly being registered under the generic driver name, which prevents the generic implementation from being registered with the crypto API when CONFIG_CRYPTO_DEV_CAVIUM_ZIP=y. Similarly the lzs algorithm (which does not currently have a generic implementation...) is incorrectly being registered as lzs-generic.

Fix the naming collision by adding a suffix "-cavium" to the cra_driver_name of the cavium/zip algorithms.

The patch is fine, basically the same as:
https://marc.info/?l=linux-crypto-vger&m=152968599829763&w=2

Shouldn't we also rename deflate to deflate generic?

--Jan

Quoted 48 lines
Fixes 640035a2dc55 ("crypto: zip - Add ThunderX ZIP driver core")
Cc Mahipal Challa <[email protected]>
Cc Jan Glauber <[email protected]>
---
 drivers/crypto/cavium/zip/zip_main.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
drivers/crypto/cavium/zip/zip_main.c +4 -3
index e6b09e784e666..a8447a3cf3665 100644
@@ -351,6 +351,7 @@ static struct pci_driver zip_driver = {
 
 static struct crypto_alg zip_comp_deflate = {
        .cra_name               = "deflate",
+       .cra_driver_name        = "deflate-cavium",
        .cra_flags              = CRYPTO_ALG_TYPE_COMPRESS,
        .cra_ctxsize            = sizeof(struct zip_kernel_ctx),
        .cra_priority           = 300,
@@ -365,6 +366,7 @@ static struct crypto_alg zip_comp_deflate = {
 
 static struct crypto_alg zip_comp_lzs = {
        .cra_name               = "lzs",
+       .cra_driver_name        = "lzs-cavium",
        .cra_flags              = CRYPTO_ALG_TYPE_COMPRESS,
        .cra_ctxsize            = sizeof(struct zip_kernel_ctx),
        .cra_priority           = 300,
@@ -384,7 +386,7 @@ static struct scomp_alg zip_scomp_deflate = {
        .decompress             = zip_scomp_decompress,
        .base                   = {
                .cra_name               = "deflate",
-               .cra_driver_name        = "deflate-scomp",
+               .cra_driver_name        = "deflate-scomp-cavium",
                .cra_module             = THIS_MODULE,
                .cra_priority           = 300,
        }
@@ -397,7 +399,7 @@ static struct scomp_alg zip_scomp_lzs = {
        .decompress             = zip_scomp_decompress,
        .base                   = {
                .cra_name               = "lzs",
-               .cra_driver_name        = "lzs-scomp",
+               .cra_driver_name        = "lzs-scomp-cavium",
                .cra_module             = THIS_MODULE,
                .cra_priority           = 300,
        }
--

2.20.1

#2 lore raw
Quoted 13 lines · Jan Glauber
Quoted 11 lines · Eric Biggers

From: Eric Biggers <[email protected]>

The cavium/zip implementation of the deflate compression algorithm is incorrectly being registered under the generic driver name, which prevents the generic implementation from being registered with the crypto API when CONFIG_CRYPTO_DEV_CAVIUM_ZIP=y. Similarly the lzs algorithm (which does not currently have a generic implementation...) is incorrectly being registered as lzs-generic.

Fix the naming collision by adding a suffix "-cavium" to the cra_driver_name of the cavium/zip algorithms.

Quoted 7 lines

The patch is fine, basically the same as:
https://marc.info/?l=linux-crypto-vger&m=152968599829763&w=2

Shouldn't we also rename deflate to deflate generic?

--Jan

It is already deflate-generic. Since cra_driver_name is unset, crypto_set_driver_name() in crypto/algapi.c appends "-generic" to cra_name = "deflate", forming cra_driver_name = "deflate-generic".

Personally I think that should be gotten rid of and the crypto API should require that cra_driver_name always be set, but that's what it does now.

Quoted 48 lines
Quoted 48 lines
Fixes 640035a2dc55 ("crypto: zip - Add ThunderX ZIP driver core")
Cc Mahipal Challa <[email protected]>
Cc Jan Glauber <[email protected]>
---
 drivers/crypto/cavium/zip/zip_main.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
drivers/crypto/cavium/zip/zip_main.c +4 -3
index e6b09e784e666..a8447a3cf3665 100644
@@ -351,6 +351,7 @@ static struct pci_driver zip_driver = {
 
 static struct crypto_alg zip_comp_deflate = {
        .cra_name               = "deflate",
+       .cra_driver_name        = "deflate-cavium",
        .cra_flags              = CRYPTO_ALG_TYPE_COMPRESS,
        .cra_ctxsize            = sizeof(struct zip_kernel_ctx),
        .cra_priority           = 300,
@@ -365,6 +366,7 @@ static struct crypto_alg zip_comp_deflate = {
 
 static struct crypto_alg zip_comp_lzs = {
        .cra_name               = "lzs",
+       .cra_driver_name        = "lzs-cavium",
        .cra_flags              = CRYPTO_ALG_TYPE_COMPRESS,
        .cra_ctxsize            = sizeof(struct zip_kernel_ctx),
        .cra_priority           = 300,
@@ -384,7 +386,7 @@ static struct scomp_alg zip_scomp_deflate = {
        .decompress             = zip_scomp_decompress,
        .base                   = {
                .cra_name               = "deflate",
-               .cra_driver_name        = "deflate-scomp",
+               .cra_driver_name        = "deflate-scomp-cavium",
                .cra_module             = THIS_MODULE,
                .cra_priority           = 300,
        }
@@ -397,7 +399,7 @@ static struct scomp_alg zip_scomp_lzs = {
        .decompress             = zip_scomp_decompress,
        .base                   = {
                .cra_name               = "lzs",
-               .cra_driver_name        = "lzs-scomp",
+               .cra_driver_name        = "lzs-scomp-cavium",
                .cra_module             = THIS_MODULE,
                .cra_priority           = 300,
        }
--

2.20.1

maintainer
#3 lore raw
In reply to Eric Biggers
Quoted 12 lines · Eric Biggers

From: Eric Biggers <[email protected]>

The cavium/zip implementation of the deflate compression algorithm is incorrectly being registered under the generic driver name, which prevents the generic implementation from being registered with the crypto API when CONFIG_CRYPTO_DEV_CAVIUM_ZIP=y. Similarly the lzs algorithm (which does not currently have a generic implementation...) is incorrectly being registered as lzs-generic.

Fix the naming collision by adding a suffix "-cavium" to the cra_driver_name of the cavium/zip algorithms.

Quoted 7 lines
Fixes 640035a2dc55 ("crypto: zip - Add ThunderX ZIP driver core")
Cc Mahipal Challa <[email protected]>
Cc Jan Glauber <[email protected]>
---
 drivers/crypto/cavium/zip/zip_main.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

Patch applied. Thanks.

Signature · 3 lines
Email: Herbert Xu <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt