All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/5] Remove duplicate context init function for sha algorithm
@ 2021-12-20  9:23 Tianjia Zhang
  2021-12-20  9:23 ` [PATCH 1/5] crypto: sha256 - remove duplicate generic hash init function Tianjia Zhang
                   ` (5 more replies)
  0 siblings, 6 replies; 12+ messages in thread
From: Tianjia Zhang @ 2021-12-20  9:23 UTC (permalink / raw)
  To: Herbert Xu, David S. Miller, Thomas Bogendoerfer,
	Michael Ellerman, Benjamin Herrenschmidt, Paul Mackerras,
	Heiko Carstens, Vasily Gorbik, Christian Borntraeger,
	Alexander Gordeev, linux-crypto, linux-mips, linux-kernel,
	linuxppc-dev, linux-s390, sparclinux
  Cc: Tianjia Zhang

This series of patches is mainly for repetitive code cleaning. The sha
algorithm has provided generic context initialization implementation.
The context initialization code in the optimized implementation of each
platform is a repetitive code and can be deleted. The sha*_base_init()
series of functions are used uniformly.

Tianjia Zhang (5):
  crypto: sha256 - remove duplicate generic hash init function
  crypto: mips/sha - remove duplicate hash init function
  crypto: powerpc/sha - remove duplicate hash init function
  crypto: sparc/sha - remove duplicate hash init function
  crypto: s390/sha512 - Use macros instead of direct IV numbers

 arch/mips/cavium-octeon/crypto/octeon-sha1.c  | 17 +-------
 .../mips/cavium-octeon/crypto/octeon-sha256.c | 39 ++-----------------
 .../mips/cavium-octeon/crypto/octeon-sha512.c | 39 ++-----------------
 arch/powerpc/crypto/sha1-spe-glue.c           | 17 +-------
 arch/powerpc/crypto/sha1.c                    | 14 +------
 arch/powerpc/crypto/sha256-spe-glue.c         | 39 ++-----------------
 arch/s390/crypto/sha512_s390.c                | 32 +++++++--------
 arch/sparc/crypto/sha1_glue.c                 | 14 +------
 arch/sparc/crypto/sha256_glue.c               | 37 ++----------------
 arch/sparc/crypto/sha512_glue.c               | 37 ++----------------
 crypto/sha256_generic.c                       | 16 +-------
 11 files changed, 41 insertions(+), 260 deletions(-)

-- 
2.32.0


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH 1/5] crypto: sha256 - remove duplicate generic hash init function
  2021-12-20  9:23 [PATCH 0/5] Remove duplicate context init function for sha algorithm Tianjia Zhang
@ 2021-12-20  9:23 ` Tianjia Zhang
  2021-12-22 22:35     ` Julian Calaby
  2021-12-20  9:23 ` [PATCH 2/5] crypto: mips/sha - remove duplicate " Tianjia Zhang
                   ` (4 subsequent siblings)
  5 siblings, 1 reply; 12+ messages in thread
From: Tianjia Zhang @ 2021-12-20  9:23 UTC (permalink / raw)
  To: Herbert Xu, David S. Miller, Thomas Bogendoerfer,
	Michael Ellerman, Benjamin Herrenschmidt, Paul Mackerras,
	Heiko Carstens, Vasily Gorbik, Christian Borntraeger,
	Alexander Gordeev, linux-crypto, linux-mips, linux-kernel,
	linuxppc-dev, linux-s390, sparclinux
  Cc: Tianjia Zhang

crypto_sha256_init() and sha256_base_init() are the same repeated
implementations, remove the crypto_sha256_init() in generic
implementation, sha224 is the same process.

Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
---
 crypto/sha256_generic.c | 16 ++--------------
 1 file changed, 2 insertions(+), 14 deletions(-)

diff --git a/crypto/sha256_generic.c b/crypto/sha256_generic.c
index 3b377197236e..bf147b01e313 100644
--- a/crypto/sha256_generic.c
+++ b/crypto/sha256_generic.c
@@ -33,18 +33,6 @@ const u8 sha256_zero_message_hash[SHA256_DIGEST_SIZE] = {
 };
 EXPORT_SYMBOL_GPL(sha256_zero_message_hash);
 
-static int crypto_sha256_init(struct shash_desc *desc)
-{
-	sha256_init(shash_desc_ctx(desc));
-	return 0;
-}
-
-static int crypto_sha224_init(struct shash_desc *desc)
-{
-	sha224_init(shash_desc_ctx(desc));
-	return 0;
-}
-
 int crypto_sha256_update(struct shash_desc *desc, const u8 *data,
 			  unsigned int len)
 {
@@ -72,7 +60,7 @@ EXPORT_SYMBOL(crypto_sha256_finup);
 
 static struct shash_alg sha256_algs[2] = { {
 	.digestsize	=	SHA256_DIGEST_SIZE,
-	.init		=	crypto_sha256_init,
+	.init		=	sha256_base_init,
 	.update		=	crypto_sha256_update,
 	.final		=	crypto_sha256_final,
 	.finup		=	crypto_sha256_finup,
@@ -86,7 +74,7 @@ static struct shash_alg sha256_algs[2] = { {
 	}
 }, {
 	.digestsize	=	SHA224_DIGEST_SIZE,
-	.init		=	crypto_sha224_init,
+	.init		=	sha224_base_init,
 	.update		=	crypto_sha256_update,
 	.final		=	crypto_sha256_final,
 	.finup		=	crypto_sha256_finup,
-- 
2.32.0


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 2/5] crypto: mips/sha - remove duplicate hash init function
  2021-12-20  9:23 [PATCH 0/5] Remove duplicate context init function for sha algorithm Tianjia Zhang
  2021-12-20  9:23 ` [PATCH 1/5] crypto: sha256 - remove duplicate generic hash init function Tianjia Zhang
@ 2021-12-20  9:23 ` Tianjia Zhang
  2021-12-20  9:23 ` [PATCH 3/5] crypto: powerpc/sha " Tianjia Zhang
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 12+ messages in thread
From: Tianjia Zhang @ 2021-12-20  9:23 UTC (permalink / raw)
  To: Herbert Xu, David S. Miller, Thomas Bogendoerfer,
	Michael Ellerman, Benjamin Herrenschmidt, Paul Mackerras,
	Heiko Carstens, Vasily Gorbik, Christian Borntraeger,
	Alexander Gordeev, linux-crypto, linux-mips, linux-kernel,
	linuxppc-dev, linux-s390, sparclinux
  Cc: Tianjia Zhang

sha*_base_init() series functions has implemented the initialization
of the hash context, this commit use sha*_base_init() function to
replace repeated implementations.

Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
---
 arch/mips/cavium-octeon/crypto/octeon-sha1.c  | 17 +-------
 .../mips/cavium-octeon/crypto/octeon-sha256.c | 39 ++-----------------
 .../mips/cavium-octeon/crypto/octeon-sha512.c | 39 ++-----------------
 3 files changed, 8 insertions(+), 87 deletions(-)

diff --git a/arch/mips/cavium-octeon/crypto/octeon-sha1.c b/arch/mips/cavium-octeon/crypto/octeon-sha1.c
index 30f1d75208a5..37a07b3c4568 100644
--- a/arch/mips/cavium-octeon/crypto/octeon-sha1.c
+++ b/arch/mips/cavium-octeon/crypto/octeon-sha1.c
@@ -15,6 +15,7 @@
 
 #include <linux/mm.h>
 #include <crypto/sha1.h>
+#include <crypto/sha1_base.h>
 #include <linux/init.h>
 #include <linux/types.h>
 #include <linux/module.h>
@@ -71,20 +72,6 @@ static void octeon_sha1_transform(const void *_block)
 	octeon_sha1_start(block[7]);
 }
 
-static int octeon_sha1_init(struct shash_desc *desc)
-{
-	struct sha1_state *sctx = shash_desc_ctx(desc);
-
-	sctx->state[0] = SHA1_H0;
-	sctx->state[1] = SHA1_H1;
-	sctx->state[2] = SHA1_H2;
-	sctx->state[3] = SHA1_H3;
-	sctx->state[4] = SHA1_H4;
-	sctx->count = 0;
-
-	return 0;
-}
-
 static void __octeon_sha1_update(struct sha1_state *sctx, const u8 *data,
 				 unsigned int len)
 {
@@ -200,7 +187,7 @@ static int octeon_sha1_import(struct shash_desc *desc, const void *in)
 
 static struct shash_alg octeon_sha1_alg = {
 	.digestsize	=	SHA1_DIGEST_SIZE,
-	.init		=	octeon_sha1_init,
+	.init		=	sha1_base_init,
 	.update		=	octeon_sha1_update,
 	.final		=	octeon_sha1_final,
 	.export		=	octeon_sha1_export,
diff --git a/arch/mips/cavium-octeon/crypto/octeon-sha256.c b/arch/mips/cavium-octeon/crypto/octeon-sha256.c
index 36cb92895d72..435e4a6e7f13 100644
--- a/arch/mips/cavium-octeon/crypto/octeon-sha256.c
+++ b/arch/mips/cavium-octeon/crypto/octeon-sha256.c
@@ -16,6 +16,7 @@
 
 #include <linux/mm.h>
 #include <crypto/sha2.h>
+#include <crypto/sha256_base.h>
 #include <linux/init.h>
 #include <linux/types.h>
 #include <linux/module.h>
@@ -63,40 +64,6 @@ static void octeon_sha256_transform(const void *_block)
 	octeon_sha256_start(block[7]);
 }
 
-static int octeon_sha224_init(struct shash_desc *desc)
-{
-	struct sha256_state *sctx = shash_desc_ctx(desc);
-
-	sctx->state[0] = SHA224_H0;
-	sctx->state[1] = SHA224_H1;
-	sctx->state[2] = SHA224_H2;
-	sctx->state[3] = SHA224_H3;
-	sctx->state[4] = SHA224_H4;
-	sctx->state[5] = SHA224_H5;
-	sctx->state[6] = SHA224_H6;
-	sctx->state[7] = SHA224_H7;
-	sctx->count = 0;
-
-	return 0;
-}
-
-static int octeon_sha256_init(struct shash_desc *desc)
-{
-	struct sha256_state *sctx = shash_desc_ctx(desc);
-
-	sctx->state[0] = SHA256_H0;
-	sctx->state[1] = SHA256_H1;
-	sctx->state[2] = SHA256_H2;
-	sctx->state[3] = SHA256_H3;
-	sctx->state[4] = SHA256_H4;
-	sctx->state[5] = SHA256_H5;
-	sctx->state[6] = SHA256_H6;
-	sctx->state[7] = SHA256_H7;
-	sctx->count = 0;
-
-	return 0;
-}
-
 static void __octeon_sha256_update(struct sha256_state *sctx, const u8 *data,
 				   unsigned int len)
 {
@@ -224,7 +191,7 @@ static int octeon_sha256_import(struct shash_desc *desc, const void *in)
 
 static struct shash_alg octeon_sha256_algs[2] = { {
 	.digestsize	=	SHA256_DIGEST_SIZE,
-	.init		=	octeon_sha256_init,
+	.init		=	sha256_base_init,
 	.update		=	octeon_sha256_update,
 	.final		=	octeon_sha256_final,
 	.export		=	octeon_sha256_export,
@@ -240,7 +207,7 @@ static struct shash_alg octeon_sha256_algs[2] = { {
 	}
 }, {
 	.digestsize	=	SHA224_DIGEST_SIZE,
-	.init		=	octeon_sha224_init,
+	.init		=	sha224_base_init,
 	.update		=	octeon_sha256_update,
 	.final		=	octeon_sha224_final,
 	.descsize	=	sizeof(struct sha256_state),
diff --git a/arch/mips/cavium-octeon/crypto/octeon-sha512.c b/arch/mips/cavium-octeon/crypto/octeon-sha512.c
index 359f039820d8..2dee9354e33f 100644
--- a/arch/mips/cavium-octeon/crypto/octeon-sha512.c
+++ b/arch/mips/cavium-octeon/crypto/octeon-sha512.c
@@ -15,6 +15,7 @@
 
 #include <linux/mm.h>
 #include <crypto/sha2.h>
+#include <crypto/sha512_base.h>
 #include <linux/init.h>
 #include <linux/types.h>
 #include <linux/module.h>
@@ -74,40 +75,6 @@ static void octeon_sha512_transform(const void *_block)
 	octeon_sha512_start(block[15]);
 }
 
-static int octeon_sha512_init(struct shash_desc *desc)
-{
-	struct sha512_state *sctx = shash_desc_ctx(desc);
-
-	sctx->state[0] = SHA512_H0;
-	sctx->state[1] = SHA512_H1;
-	sctx->state[2] = SHA512_H2;
-	sctx->state[3] = SHA512_H3;
-	sctx->state[4] = SHA512_H4;
-	sctx->state[5] = SHA512_H5;
-	sctx->state[6] = SHA512_H6;
-	sctx->state[7] = SHA512_H7;
-	sctx->count[0] = sctx->count[1] = 0;
-
-	return 0;
-}
-
-static int octeon_sha384_init(struct shash_desc *desc)
-{
-	struct sha512_state *sctx = shash_desc_ctx(desc);
-
-	sctx->state[0] = SHA384_H0;
-	sctx->state[1] = SHA384_H1;
-	sctx->state[2] = SHA384_H2;
-	sctx->state[3] = SHA384_H3;
-	sctx->state[4] = SHA384_H4;
-	sctx->state[5] = SHA384_H5;
-	sctx->state[6] = SHA384_H6;
-	sctx->state[7] = SHA384_H7;
-	sctx->count[0] = sctx->count[1] = 0;
-
-	return 0;
-}
-
 static void __octeon_sha512_update(struct sha512_state *sctx, const u8 *data,
 				   unsigned int len)
 {
@@ -223,7 +190,7 @@ static int octeon_sha384_final(struct shash_desc *desc, u8 *hash)
 
 static struct shash_alg octeon_sha512_algs[2] = { {
 	.digestsize	=	SHA512_DIGEST_SIZE,
-	.init		=	octeon_sha512_init,
+	.init		=	sha512_base_init,
 	.update		=	octeon_sha512_update,
 	.final		=	octeon_sha512_final,
 	.descsize	=	sizeof(struct sha512_state),
@@ -236,7 +203,7 @@ static struct shash_alg octeon_sha512_algs[2] = { {
 	}
 }, {
 	.digestsize	=	SHA384_DIGEST_SIZE,
-	.init		=	octeon_sha384_init,
+	.init		=	sha384_base_init,
 	.update		=	octeon_sha512_update,
 	.final		=	octeon_sha384_final,
 	.descsize	=	sizeof(struct sha512_state),
-- 
2.32.0


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 3/5] crypto: powerpc/sha - remove duplicate hash init function
  2021-12-20  9:23 [PATCH 0/5] Remove duplicate context init function for sha algorithm Tianjia Zhang
  2021-12-20  9:23 ` [PATCH 1/5] crypto: sha256 - remove duplicate generic hash init function Tianjia Zhang
  2021-12-20  9:23 ` [PATCH 2/5] crypto: mips/sha - remove duplicate " Tianjia Zhang
@ 2021-12-20  9:23 ` Tianjia Zhang
  2021-12-20  9:23 ` [PATCH 4/5] crypto: sparc/sha " Tianjia Zhang
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 12+ messages in thread
From: Tianjia Zhang @ 2021-12-20  9:23 UTC (permalink / raw)
  To: Herbert Xu, David S. Miller, Thomas Bogendoerfer,
	Michael Ellerman, Benjamin Herrenschmidt, Paul Mackerras,
	Heiko Carstens, Vasily Gorbik, Christian Borntraeger,
	Alexander Gordeev, linux-crypto, linux-mips, linux-kernel,
	linuxppc-dev, linux-s390, sparclinux
  Cc: Tianjia Zhang

sha*_base_init() series functions has implemented the initialization
of the hash context, this commit use sha*_base_init() function to
replace repeated implementations.

Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
---
 arch/powerpc/crypto/sha1-spe-glue.c   | 17 ++----------
 arch/powerpc/crypto/sha1.c            | 14 ++--------
 arch/powerpc/crypto/sha256-spe-glue.c | 39 +++------------------------
 3 files changed, 7 insertions(+), 63 deletions(-)

diff --git a/arch/powerpc/crypto/sha1-spe-glue.c b/arch/powerpc/crypto/sha1-spe-glue.c
index 88e8ea73bfa7..9170892a8557 100644
--- a/arch/powerpc/crypto/sha1-spe-glue.c
+++ b/arch/powerpc/crypto/sha1-spe-glue.c
@@ -13,6 +13,7 @@
 #include <linux/mm.h>
 #include <linux/types.h>
 #include <crypto/sha1.h>
+#include <crypto/sha1_base.h>
 #include <asm/byteorder.h>
 #include <asm/switch_to.h>
 #include <linux/hardirq.h>
@@ -55,20 +56,6 @@ static inline void ppc_sha1_clear_context(struct sha1_state *sctx)
 	do { *ptr++ = 0; } while (--count);
 }
 
-static int ppc_spe_sha1_init(struct shash_desc *desc)
-{
-	struct sha1_state *sctx = shash_desc_ctx(desc);
-
-	sctx->state[0] = SHA1_H0;
-	sctx->state[1] = SHA1_H1;
-	sctx->state[2] = SHA1_H2;
-	sctx->state[3] = SHA1_H3;
-	sctx->state[4] = SHA1_H4;
-	sctx->count = 0;
-
-	return 0;
-}
-
 static int ppc_spe_sha1_update(struct shash_desc *desc, const u8 *data,
 			unsigned int len)
 {
@@ -168,7 +155,7 @@ static int ppc_spe_sha1_import(struct shash_desc *desc, const void *in)
 
 static struct shash_alg alg = {
 	.digestsize	=	SHA1_DIGEST_SIZE,
-	.init		=	ppc_spe_sha1_init,
+	.init		=	sha1_base_init,
 	.update		=	ppc_spe_sha1_update,
 	.final		=	ppc_spe_sha1_final,
 	.export		=	ppc_spe_sha1_export,
diff --git a/arch/powerpc/crypto/sha1.c b/arch/powerpc/crypto/sha1.c
index 7a55d790cdb1..f283bbd3f121 100644
--- a/arch/powerpc/crypto/sha1.c
+++ b/arch/powerpc/crypto/sha1.c
@@ -18,21 +18,11 @@
 #include <linux/mm.h>
 #include <linux/types.h>
 #include <crypto/sha1.h>
+#include <crypto/sha1_base.h>
 #include <asm/byteorder.h>
 
 void powerpc_sha_transform(u32 *state, const u8 *src);
 
-static int powerpc_sha1_init(struct shash_desc *desc)
-{
-	struct sha1_state *sctx = shash_desc_ctx(desc);
-
-	*sctx = (struct sha1_state){
-		.state = { SHA1_H0, SHA1_H1, SHA1_H2, SHA1_H3, SHA1_H4 },
-	};
-
-	return 0;
-}
-
 static int powerpc_sha1_update(struct shash_desc *desc, const u8 *data,
 			       unsigned int len)
 {
@@ -114,7 +104,7 @@ static int powerpc_sha1_import(struct shash_desc *desc, const void *in)
 
 static struct shash_alg alg = {
 	.digestsize	=	SHA1_DIGEST_SIZE,
-	.init		=	powerpc_sha1_init,
+	.init		=	sha1_base_init,
 	.update		=	powerpc_sha1_update,
 	.final		=	powerpc_sha1_final,
 	.export		=	powerpc_sha1_export,
diff --git a/arch/powerpc/crypto/sha256-spe-glue.c b/arch/powerpc/crypto/sha256-spe-glue.c
index ffedea7e4bef..2997d13236e0 100644
--- a/arch/powerpc/crypto/sha256-spe-glue.c
+++ b/arch/powerpc/crypto/sha256-spe-glue.c
@@ -14,6 +14,7 @@
 #include <linux/mm.h>
 #include <linux/types.h>
 #include <crypto/sha2.h>
+#include <crypto/sha256_base.h>
 #include <asm/byteorder.h>
 #include <asm/switch_to.h>
 #include <linux/hardirq.h>
@@ -56,40 +57,6 @@ static inline void ppc_sha256_clear_context(struct sha256_state *sctx)
 	do { *ptr++ = 0; } while (--count);
 }
 
-static int ppc_spe_sha256_init(struct shash_desc *desc)
-{
-	struct sha256_state *sctx = shash_desc_ctx(desc);
-
-	sctx->state[0] = SHA256_H0;
-	sctx->state[1] = SHA256_H1;
-	sctx->state[2] = SHA256_H2;
-	sctx->state[3] = SHA256_H3;
-	sctx->state[4] = SHA256_H4;
-	sctx->state[5] = SHA256_H5;
-	sctx->state[6] = SHA256_H6;
-	sctx->state[7] = SHA256_H7;
-	sctx->count = 0;
-
-	return 0;
-}
-
-static int ppc_spe_sha224_init(struct shash_desc *desc)
-{
-	struct sha256_state *sctx = shash_desc_ctx(desc);
-
-	sctx->state[0] = SHA224_H0;
-	sctx->state[1] = SHA224_H1;
-	sctx->state[2] = SHA224_H2;
-	sctx->state[3] = SHA224_H3;
-	sctx->state[4] = SHA224_H4;
-	sctx->state[5] = SHA224_H5;
-	sctx->state[6] = SHA224_H6;
-	sctx->state[7] = SHA224_H7;
-	sctx->count = 0;
-
-	return 0;
-}
-
 static int ppc_spe_sha256_update(struct shash_desc *desc, const u8 *data,
 			unsigned int len)
 {
@@ -214,7 +181,7 @@ static int ppc_spe_sha256_import(struct shash_desc *desc, const void *in)
 
 static struct shash_alg algs[2] = { {
 	.digestsize	=	SHA256_DIGEST_SIZE,
-	.init		=	ppc_spe_sha256_init,
+	.init		=	sha256_base_init,
 	.update		=	ppc_spe_sha256_update,
 	.final		=	ppc_spe_sha256_final,
 	.export		=	ppc_spe_sha256_export,
@@ -230,7 +197,7 @@ static struct shash_alg algs[2] = { {
 	}
 }, {
 	.digestsize	=	SHA224_DIGEST_SIZE,
-	.init		=	ppc_spe_sha224_init,
+	.init		=	sha224_base_init,
 	.update		=	ppc_spe_sha256_update,
 	.final		=	ppc_spe_sha224_final,
 	.export		=	ppc_spe_sha256_export,
-- 
2.32.0


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 4/5] crypto: sparc/sha - remove duplicate hash init function
  2021-12-20  9:23 [PATCH 0/5] Remove duplicate context init function for sha algorithm Tianjia Zhang
                   ` (2 preceding siblings ...)
  2021-12-20  9:23 ` [PATCH 3/5] crypto: powerpc/sha " Tianjia Zhang
@ 2021-12-20  9:23 ` Tianjia Zhang
  2021-12-20  9:23 ` [PATCH 5/5] crypto: s390/sha512 - Use macros instead of direct IV numbers Tianjia Zhang
  2021-12-31 11:34   ` Herbert Xu
  5 siblings, 0 replies; 12+ messages in thread
From: Tianjia Zhang @ 2021-12-20  9:23 UTC (permalink / raw)
  To: Herbert Xu, David S. Miller, Thomas Bogendoerfer,
	Michael Ellerman, Benjamin Herrenschmidt, Paul Mackerras,
	Heiko Carstens, Vasily Gorbik, Christian Borntraeger,
	Alexander Gordeev, linux-crypto, linux-mips, linux-kernel,
	linuxppc-dev, linux-s390, sparclinux
  Cc: Tianjia Zhang

sha*_base_init() series functions has implemented the initialization
of the hash context, this commit use sha*_base_init() function to
replace repeated implementations.

Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
---
 arch/sparc/crypto/sha1_glue.c   | 14 ++-----------
 arch/sparc/crypto/sha256_glue.c | 37 +++------------------------------
 arch/sparc/crypto/sha512_glue.c | 37 +++------------------------------
 3 files changed, 8 insertions(+), 80 deletions(-)

diff --git a/arch/sparc/crypto/sha1_glue.c b/arch/sparc/crypto/sha1_glue.c
index 86a654cce5ab..06b7becfcb21 100644
--- a/arch/sparc/crypto/sha1_glue.c
+++ b/arch/sparc/crypto/sha1_glue.c
@@ -17,6 +17,7 @@
 #include <linux/mm.h>
 #include <linux/types.h>
 #include <crypto/sha1.h>
+#include <crypto/sha1_base.h>
 
 #include <asm/pstate.h>
 #include <asm/elf.h>
@@ -26,17 +27,6 @@
 asmlinkage void sha1_sparc64_transform(u32 *digest, const char *data,
 				       unsigned int rounds);
 
-static int sha1_sparc64_init(struct shash_desc *desc)
-{
-	struct sha1_state *sctx = shash_desc_ctx(desc);
-
-	*sctx = (struct sha1_state){
-		.state = { SHA1_H0, SHA1_H1, SHA1_H2, SHA1_H3, SHA1_H4 },
-	};
-
-	return 0;
-}
-
 static void __sha1_sparc64_update(struct sha1_state *sctx, const u8 *data,
 				  unsigned int len, unsigned int partial)
 {
@@ -128,7 +118,7 @@ static int sha1_sparc64_import(struct shash_desc *desc, const void *in)
 
 static struct shash_alg alg = {
 	.digestsize	=	SHA1_DIGEST_SIZE,
-	.init		=	sha1_sparc64_init,
+	.init		=	sha1_base_init,
 	.update		=	sha1_sparc64_update,
 	.final		=	sha1_sparc64_final,
 	.export		=	sha1_sparc64_export,
diff --git a/arch/sparc/crypto/sha256_glue.c b/arch/sparc/crypto/sha256_glue.c
index 60ec524cf9ca..285561a1cde5 100644
--- a/arch/sparc/crypto/sha256_glue.c
+++ b/arch/sparc/crypto/sha256_glue.c
@@ -17,6 +17,7 @@
 #include <linux/mm.h>
 #include <linux/types.h>
 #include <crypto/sha2.h>
+#include <crypto/sha256_base.h>
 
 #include <asm/pstate.h>
 #include <asm/elf.h>
@@ -26,38 +27,6 @@
 asmlinkage void sha256_sparc64_transform(u32 *digest, const char *data,
 					 unsigned int rounds);
 
-static int sha224_sparc64_init(struct shash_desc *desc)
-{
-	struct sha256_state *sctx = shash_desc_ctx(desc);
-	sctx->state[0] = SHA224_H0;
-	sctx->state[1] = SHA224_H1;
-	sctx->state[2] = SHA224_H2;
-	sctx->state[3] = SHA224_H3;
-	sctx->state[4] = SHA224_H4;
-	sctx->state[5] = SHA224_H5;
-	sctx->state[6] = SHA224_H6;
-	sctx->state[7] = SHA224_H7;
-	sctx->count = 0;
-
-	return 0;
-}
-
-static int sha256_sparc64_init(struct shash_desc *desc)
-{
-	struct sha256_state *sctx = shash_desc_ctx(desc);
-	sctx->state[0] = SHA256_H0;
-	sctx->state[1] = SHA256_H1;
-	sctx->state[2] = SHA256_H2;
-	sctx->state[3] = SHA256_H3;
-	sctx->state[4] = SHA256_H4;
-	sctx->state[5] = SHA256_H5;
-	sctx->state[6] = SHA256_H6;
-	sctx->state[7] = SHA256_H7;
-	sctx->count = 0;
-
-	return 0;
-}
-
 static void __sha256_sparc64_update(struct sha256_state *sctx, const u8 *data,
 				    unsigned int len, unsigned int partial)
 {
@@ -158,7 +127,7 @@ static int sha256_sparc64_import(struct shash_desc *desc, const void *in)
 
 static struct shash_alg sha256_alg = {
 	.digestsize	=	SHA256_DIGEST_SIZE,
-	.init		=	sha256_sparc64_init,
+	.init		=	sha256_base_init,
 	.update		=	sha256_sparc64_update,
 	.final		=	sha256_sparc64_final,
 	.export		=	sha256_sparc64_export,
@@ -176,7 +145,7 @@ static struct shash_alg sha256_alg = {
 
 static struct shash_alg sha224_alg = {
 	.digestsize	=	SHA224_DIGEST_SIZE,
-	.init		=	sha224_sparc64_init,
+	.init		=	sha224_base_init,
 	.update		=	sha256_sparc64_update,
 	.final		=	sha224_sparc64_final,
 	.descsize	=	sizeof(struct sha256_state),
diff --git a/arch/sparc/crypto/sha512_glue.c b/arch/sparc/crypto/sha512_glue.c
index 273ce21918c1..d66efa4ec59a 100644
--- a/arch/sparc/crypto/sha512_glue.c
+++ b/arch/sparc/crypto/sha512_glue.c
@@ -16,6 +16,7 @@
 #include <linux/mm.h>
 #include <linux/types.h>
 #include <crypto/sha2.h>
+#include <crypto/sha512_base.h>
 
 #include <asm/pstate.h>
 #include <asm/elf.h>
@@ -25,38 +26,6 @@
 asmlinkage void sha512_sparc64_transform(u64 *digest, const char *data,
 					 unsigned int rounds);
 
-static int sha512_sparc64_init(struct shash_desc *desc)
-{
-	struct sha512_state *sctx = shash_desc_ctx(desc);
-	sctx->state[0] = SHA512_H0;
-	sctx->state[1] = SHA512_H1;
-	sctx->state[2] = SHA512_H2;
-	sctx->state[3] = SHA512_H3;
-	sctx->state[4] = SHA512_H4;
-	sctx->state[5] = SHA512_H5;
-	sctx->state[6] = SHA512_H6;
-	sctx->state[7] = SHA512_H7;
-	sctx->count[0] = sctx->count[1] = 0;
-
-	return 0;
-}
-
-static int sha384_sparc64_init(struct shash_desc *desc)
-{
-	struct sha512_state *sctx = shash_desc_ctx(desc);
-	sctx->state[0] = SHA384_H0;
-	sctx->state[1] = SHA384_H1;
-	sctx->state[2] = SHA384_H2;
-	sctx->state[3] = SHA384_H3;
-	sctx->state[4] = SHA384_H4;
-	sctx->state[5] = SHA384_H5;
-	sctx->state[6] = SHA384_H6;
-	sctx->state[7] = SHA384_H7;
-	sctx->count[0] = sctx->count[1] = 0;
-
-	return 0;
-}
-
 static void __sha512_sparc64_update(struct sha512_state *sctx, const u8 *data,
 				    unsigned int len, unsigned int partial)
 {
@@ -146,7 +115,7 @@ static int sha384_sparc64_final(struct shash_desc *desc, u8 *hash)
 
 static struct shash_alg sha512 = {
 	.digestsize	=	SHA512_DIGEST_SIZE,
-	.init		=	sha512_sparc64_init,
+	.init		=	sha512_base_init,
 	.update		=	sha512_sparc64_update,
 	.final		=	sha512_sparc64_final,
 	.descsize	=	sizeof(struct sha512_state),
@@ -161,7 +130,7 @@ static struct shash_alg sha512 = {
 
 static struct shash_alg sha384 = {
 	.digestsize	=	SHA384_DIGEST_SIZE,
-	.init		=	sha384_sparc64_init,
+	.init		=	sha384_base_init,
 	.update		=	sha512_sparc64_update,
 	.final		=	sha384_sparc64_final,
 	.descsize	=	sizeof(struct sha512_state),
-- 
2.32.0


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 5/5] crypto: s390/sha512 - Use macros instead of direct IV numbers
  2021-12-20  9:23 [PATCH 0/5] Remove duplicate context init function for sha algorithm Tianjia Zhang
                   ` (3 preceding siblings ...)
  2021-12-20  9:23 ` [PATCH 4/5] crypto: sparc/sha " Tianjia Zhang
@ 2021-12-20  9:23 ` Tianjia Zhang
  2021-12-31 11:34   ` Herbert Xu
  5 siblings, 0 replies; 12+ messages in thread
From: Tianjia Zhang @ 2021-12-20  9:23 UTC (permalink / raw)
  To: Herbert Xu, David S. Miller, Thomas Bogendoerfer,
	Michael Ellerman, Benjamin Herrenschmidt, Paul Mackerras,
	Heiko Carstens, Vasily Gorbik, Christian Borntraeger,
	Alexander Gordeev, linux-crypto, linux-mips, linux-kernel,
	linuxppc-dev, linux-s390, sparclinux
  Cc: Tianjia Zhang

In the init functions of sha512 and sha384, the initial hash value
use macros instead of numbers.

Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
---
 arch/s390/crypto/sha512_s390.c | 32 ++++++++++++++++----------------
 1 file changed, 16 insertions(+), 16 deletions(-)

diff --git a/arch/s390/crypto/sha512_s390.c b/arch/s390/crypto/sha512_s390.c
index 29a6bd404c59..43ce4956df73 100644
--- a/arch/s390/crypto/sha512_s390.c
+++ b/arch/s390/crypto/sha512_s390.c
@@ -22,14 +22,14 @@ static int sha512_init(struct shash_desc *desc)
 {
 	struct s390_sha_ctx *ctx = shash_desc_ctx(desc);
 
-	*(__u64 *)&ctx->state[0] = 0x6a09e667f3bcc908ULL;
-	*(__u64 *)&ctx->state[2] = 0xbb67ae8584caa73bULL;
-	*(__u64 *)&ctx->state[4] = 0x3c6ef372fe94f82bULL;
-	*(__u64 *)&ctx->state[6] = 0xa54ff53a5f1d36f1ULL;
-	*(__u64 *)&ctx->state[8] = 0x510e527fade682d1ULL;
-	*(__u64 *)&ctx->state[10] = 0x9b05688c2b3e6c1fULL;
-	*(__u64 *)&ctx->state[12] = 0x1f83d9abfb41bd6bULL;
-	*(__u64 *)&ctx->state[14] = 0x5be0cd19137e2179ULL;
+	*(__u64 *)&ctx->state[0] = SHA512_H0;
+	*(__u64 *)&ctx->state[2] = SHA512_H1;
+	*(__u64 *)&ctx->state[4] = SHA512_H2;
+	*(__u64 *)&ctx->state[6] = SHA512_H3;
+	*(__u64 *)&ctx->state[8] = SHA512_H4;
+	*(__u64 *)&ctx->state[10] = SHA512_H5;
+	*(__u64 *)&ctx->state[12] = SHA512_H6;
+	*(__u64 *)&ctx->state[14] = SHA512_H7;
 	ctx->count = 0;
 	ctx->func = CPACF_KIMD_SHA_512;
 
@@ -87,14 +87,14 @@ static int sha384_init(struct shash_desc *desc)
 {
 	struct s390_sha_ctx *ctx = shash_desc_ctx(desc);
 
-	*(__u64 *)&ctx->state[0] = 0xcbbb9d5dc1059ed8ULL;
-	*(__u64 *)&ctx->state[2] = 0x629a292a367cd507ULL;
-	*(__u64 *)&ctx->state[4] = 0x9159015a3070dd17ULL;
-	*(__u64 *)&ctx->state[6] = 0x152fecd8f70e5939ULL;
-	*(__u64 *)&ctx->state[8] = 0x67332667ffc00b31ULL;
-	*(__u64 *)&ctx->state[10] = 0x8eb44a8768581511ULL;
-	*(__u64 *)&ctx->state[12] = 0xdb0c2e0d64f98fa7ULL;
-	*(__u64 *)&ctx->state[14] = 0x47b5481dbefa4fa4ULL;
+	*(__u64 *)&ctx->state[0] = SHA384_H0;
+	*(__u64 *)&ctx->state[2] = SHA384_H1;
+	*(__u64 *)&ctx->state[4] = SHA384_H2;
+	*(__u64 *)&ctx->state[6] = SHA384_H3;
+	*(__u64 *)&ctx->state[8] = SHA384_H4;
+	*(__u64 *)&ctx->state[10] = SHA384_H5;
+	*(__u64 *)&ctx->state[12] = SHA384_H6;
+	*(__u64 *)&ctx->state[14] = SHA384_H7;
 	ctx->count = 0;
 	ctx->func = CPACF_KIMD_SHA_512;
 
-- 
2.32.0


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [PATCH 1/5] crypto: sha256 - remove duplicate generic hash init function
  2021-12-20  9:23 ` [PATCH 1/5] crypto: sha256 - remove duplicate generic hash init function Tianjia Zhang
@ 2021-12-22 22:35     ` Julian Calaby
  0 siblings, 0 replies; 12+ messages in thread
From: Julian Calaby @ 2021-12-22 22:35 UTC (permalink / raw)
  To: Tianjia Zhang
  Cc: Herbert Xu, David S. Miller, Thomas Bogendoerfer,
	Michael Ellerman, Benjamin Herrenschmidt, Paul Mackerras,
	Heiko Carstens, Vasily Gorbik, Christian Borntraeger,
	Alexander Gordeev, linux-crypto, linux-mips, LKML, linuxppc-dev,
	linux-s390, sparclinux

Hi Tianjia,

On Mon, Dec 20, 2021 at 8:25 PM Tianjia Zhang
<tianjia.zhang@linux.alibaba.com> wrote:
>
> crypto_sha256_init() and sha256_base_init() are the same repeated
> implementations, remove the crypto_sha256_init() in generic
> implementation, sha224 is the same process.
>
> Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
> ---
>  crypto/sha256_generic.c | 16 ++--------------
>  1 file changed, 2 insertions(+), 14 deletions(-)
>
> diff --git a/crypto/sha256_generic.c b/crypto/sha256_generic.c
> index 3b377197236e..bf147b01e313 100644
> --- a/crypto/sha256_generic.c
> +++ b/crypto/sha256_generic.c
> @@ -72,7 +60,7 @@ EXPORT_SYMBOL(crypto_sha256_finup);
>
>  static struct shash_alg sha256_algs[2] = { {
>         .digestsize     =       SHA256_DIGEST_SIZE,
> -       .init           =       crypto_sha256_init,
> +       .init           =       sha256_base_init,
>         .update         =       crypto_sha256_update,
>         .final          =       crypto_sha256_final,
>         .finup          =       crypto_sha256_finup,
> @@ -86,7 +74,7 @@ static struct shash_alg sha256_algs[2] = { {
>         }
>  }, {
>         .digestsize     =       SHA224_DIGEST_SIZE,
> -       .init           =       crypto_sha224_init,
> +       .init           =       sha224_base_init,
>         .update         =       crypto_sha256_update,
>         .final          =       crypto_sha256_final,
>         .finup          =       crypto_sha256_finup,

Aren't these two functions defined as static inline functions? It
appears that these crypto_ wrappers were added so there's "actual"
referenceable functions for these structs.

Did this actually compile?

Thanks,

-- 
Julian Calaby

Email: julian.calaby@gmail.com
Profile: http://www.google.com/profiles/julian.calaby/

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 1/5] crypto: sha256 - remove duplicate generic hash init function
@ 2021-12-22 22:35     ` Julian Calaby
  0 siblings, 0 replies; 12+ messages in thread
From: Julian Calaby @ 2021-12-22 22:35 UTC (permalink / raw)
  To: Tianjia Zhang
  Cc: linux-s390, Thomas Bogendoerfer, Herbert Xu, Vasily Gorbik,
	Heiko Carstens, linux-mips, LKML, Paul Mackerras, linux-crypto,
	sparclinux, Alexander Gordeev, Christian Borntraeger,
	linuxppc-dev, David S. Miller

Hi Tianjia,

On Mon, Dec 20, 2021 at 8:25 PM Tianjia Zhang
<tianjia.zhang@linux.alibaba.com> wrote:
>
> crypto_sha256_init() and sha256_base_init() are the same repeated
> implementations, remove the crypto_sha256_init() in generic
> implementation, sha224 is the same process.
>
> Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
> ---
>  crypto/sha256_generic.c | 16 ++--------------
>  1 file changed, 2 insertions(+), 14 deletions(-)
>
> diff --git a/crypto/sha256_generic.c b/crypto/sha256_generic.c
> index 3b377197236e..bf147b01e313 100644
> --- a/crypto/sha256_generic.c
> +++ b/crypto/sha256_generic.c
> @@ -72,7 +60,7 @@ EXPORT_SYMBOL(crypto_sha256_finup);
>
>  static struct shash_alg sha256_algs[2] = { {
>         .digestsize     =       SHA256_DIGEST_SIZE,
> -       .init           =       crypto_sha256_init,
> +       .init           =       sha256_base_init,
>         .update         =       crypto_sha256_update,
>         .final          =       crypto_sha256_final,
>         .finup          =       crypto_sha256_finup,
> @@ -86,7 +74,7 @@ static struct shash_alg sha256_algs[2] = { {
>         }
>  }, {
>         .digestsize     =       SHA224_DIGEST_SIZE,
> -       .init           =       crypto_sha224_init,
> +       .init           =       sha224_base_init,
>         .update         =       crypto_sha256_update,
>         .final          =       crypto_sha256_final,
>         .finup          =       crypto_sha256_finup,

Aren't these two functions defined as static inline functions? It
appears that these crypto_ wrappers were added so there's "actual"
referenceable functions for these structs.

Did this actually compile?

Thanks,

-- 
Julian Calaby

Email: julian.calaby@gmail.com
Profile: http://www.google.com/profiles/julian.calaby/

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 1/5] crypto: sha256 - remove duplicate generic hash init function
  2021-12-22 22:35     ` Julian Calaby
@ 2021-12-23  2:59       ` Tianjia Zhang
  -1 siblings, 0 replies; 12+ messages in thread
From: Tianjia Zhang @ 2021-12-23  2:59 UTC (permalink / raw)
  To: Julian Calaby
  Cc: Herbert Xu, David S. Miller, Thomas Bogendoerfer,
	Michael Ellerman, Benjamin Herrenschmidt, Paul Mackerras,
	Heiko Carstens, Vasily Gorbik, Christian Borntraeger,
	Alexander Gordeev, linux-crypto, linux-mips, LKML, linuxppc-dev,
	linux-s390, sparclinux

Hi Julian,

On 12/23/21 6:35 AM, Julian Calaby wrote:
> Hi Tianjia,
> 
> On Mon, Dec 20, 2021 at 8:25 PM Tianjia Zhang
> <tianjia.zhang@linux.alibaba.com> wrote:
>>
>> crypto_sha256_init() and sha256_base_init() are the same repeated
>> implementations, remove the crypto_sha256_init() in generic
>> implementation, sha224 is the same process.
>>
>> Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
>> ---
>>   crypto/sha256_generic.c | 16 ++--------------
>>   1 file changed, 2 insertions(+), 14 deletions(-)
>>
>> diff --git a/crypto/sha256_generic.c b/crypto/sha256_generic.c
>> index 3b377197236e..bf147b01e313 100644
>> --- a/crypto/sha256_generic.c
>> +++ b/crypto/sha256_generic.c
>> @@ -72,7 +60,7 @@ EXPORT_SYMBOL(crypto_sha256_finup);
>>
>>   static struct shash_alg sha256_algs[2] = { {
>>          .digestsize     =       SHA256_DIGEST_SIZE,
>> -       .init           =       crypto_sha256_init,
>> +       .init           =       sha256_base_init,
>>          .update         =       crypto_sha256_update,
>>          .final          =       crypto_sha256_final,
>>          .finup          =       crypto_sha256_finup,
>> @@ -86,7 +74,7 @@ static struct shash_alg sha256_algs[2] = { {
>>          }
>>   }, {
>>          .digestsize     =       SHA224_DIGEST_SIZE,
>> -       .init           =       crypto_sha224_init,
>> +       .init           =       sha224_base_init,
>>          .update         =       crypto_sha256_update,
>>          .final          =       crypto_sha256_final,
>>          .finup          =       crypto_sha256_finup,
> 
> Aren't these two functions defined as static inline functions? It
> appears that these crypto_ wrappers were added so there's "actual"
> referenceable functions for these structs.
> 
> Did this actually compile?
> 
> Thanks,
> 

Judging from the compilation results, there is really no difference, but 
the modification made by this patch is still necessary, because 
crypto_sha256_init() wrapper and sha256_base_init() are two completely 
duplicate functions.

Best regards,
Tianjia

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 1/5] crypto: sha256 - remove duplicate generic hash init function
@ 2021-12-23  2:59       ` Tianjia Zhang
  0 siblings, 0 replies; 12+ messages in thread
From: Tianjia Zhang @ 2021-12-23  2:59 UTC (permalink / raw)
  To: Julian Calaby
  Cc: linux-s390, Thomas Bogendoerfer, Herbert Xu, Vasily Gorbik,
	Heiko Carstens, linux-mips, LKML, Paul Mackerras, linux-crypto,
	sparclinux, Alexander Gordeev, Christian Borntraeger,
	linuxppc-dev, David S. Miller

Hi Julian,

On 12/23/21 6:35 AM, Julian Calaby wrote:
> Hi Tianjia,
> 
> On Mon, Dec 20, 2021 at 8:25 PM Tianjia Zhang
> <tianjia.zhang@linux.alibaba.com> wrote:
>>
>> crypto_sha256_init() and sha256_base_init() are the same repeated
>> implementations, remove the crypto_sha256_init() in generic
>> implementation, sha224 is the same process.
>>
>> Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
>> ---
>>   crypto/sha256_generic.c | 16 ++--------------
>>   1 file changed, 2 insertions(+), 14 deletions(-)
>>
>> diff --git a/crypto/sha256_generic.c b/crypto/sha256_generic.c
>> index 3b377197236e..bf147b01e313 100644
>> --- a/crypto/sha256_generic.c
>> +++ b/crypto/sha256_generic.c
>> @@ -72,7 +60,7 @@ EXPORT_SYMBOL(crypto_sha256_finup);
>>
>>   static struct shash_alg sha256_algs[2] = { {
>>          .digestsize     =       SHA256_DIGEST_SIZE,
>> -       .init           =       crypto_sha256_init,
>> +       .init           =       sha256_base_init,
>>          .update         =       crypto_sha256_update,
>>          .final          =       crypto_sha256_final,
>>          .finup          =       crypto_sha256_finup,
>> @@ -86,7 +74,7 @@ static struct shash_alg sha256_algs[2] = { {
>>          }
>>   }, {
>>          .digestsize     =       SHA224_DIGEST_SIZE,
>> -       .init           =       crypto_sha224_init,
>> +       .init           =       sha224_base_init,
>>          .update         =       crypto_sha256_update,
>>          .final          =       crypto_sha256_final,
>>          .finup          =       crypto_sha256_finup,
> 
> Aren't these two functions defined as static inline functions? It
> appears that these crypto_ wrappers were added so there's "actual"
> referenceable functions for these structs.
> 
> Did this actually compile?
> 
> Thanks,
> 

Judging from the compilation results, there is really no difference, but 
the modification made by this patch is still necessary, because 
crypto_sha256_init() wrapper and sha256_base_init() are two completely 
duplicate functions.

Best regards,
Tianjia

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 0/5] Remove duplicate context init function for sha algorithm
  2021-12-20  9:23 [PATCH 0/5] Remove duplicate context init function for sha algorithm Tianjia Zhang
@ 2021-12-31 11:34   ` Herbert Xu
  2021-12-20  9:23 ` [PATCH 2/5] crypto: mips/sha - remove duplicate " Tianjia Zhang
                     ` (4 subsequent siblings)
  5 siblings, 0 replies; 12+ messages in thread
From: Herbert Xu @ 2021-12-31 11:34 UTC (permalink / raw)
  To: Tianjia Zhang
  Cc: David S. Miller, Thomas Bogendoerfer, Michael Ellerman,
	Benjamin Herrenschmidt, Paul Mackerras, Heiko Carstens,
	Vasily Gorbik, Christian Borntraeger, Alexander Gordeev,
	linux-crypto, linux-mips, linux-kernel, linuxppc-dev, linux-s390,
	sparclinux

On Mon, Dec 20, 2021 at 05:23:13PM +0800, Tianjia Zhang wrote:
> This series of patches is mainly for repetitive code cleaning. The sha
> algorithm has provided generic context initialization implementation.
> The context initialization code in the optimized implementation of each
> platform is a repetitive code and can be deleted. The sha*_base_init()
> series of functions are used uniformly.
> 
> Tianjia Zhang (5):
>   crypto: sha256 - remove duplicate generic hash init function
>   crypto: mips/sha - remove duplicate hash init function
>   crypto: powerpc/sha - remove duplicate hash init function
>   crypto: sparc/sha - remove duplicate hash init function
>   crypto: s390/sha512 - Use macros instead of direct IV numbers
> 
>  arch/mips/cavium-octeon/crypto/octeon-sha1.c  | 17 +-------
>  .../mips/cavium-octeon/crypto/octeon-sha256.c | 39 ++-----------------
>  .../mips/cavium-octeon/crypto/octeon-sha512.c | 39 ++-----------------
>  arch/powerpc/crypto/sha1-spe-glue.c           | 17 +-------
>  arch/powerpc/crypto/sha1.c                    | 14 +------
>  arch/powerpc/crypto/sha256-spe-glue.c         | 39 ++-----------------
>  arch/s390/crypto/sha512_s390.c                | 32 +++++++--------
>  arch/sparc/crypto/sha1_glue.c                 | 14 +------
>  arch/sparc/crypto/sha256_glue.c               | 37 ++----------------
>  arch/sparc/crypto/sha512_glue.c               | 37 ++----------------
>  crypto/sha256_generic.c                       | 16 +-------
>  11 files changed, 41 insertions(+), 260 deletions(-)

All applied.  Thanks.
-- 
Email: Herbert Xu <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 0/5] Remove duplicate context init function for sha algorithm
@ 2021-12-31 11:34   ` Herbert Xu
  0 siblings, 0 replies; 12+ messages in thread
From: Herbert Xu @ 2021-12-31 11:34 UTC (permalink / raw)
  To: Tianjia Zhang
  Cc: linux-s390, Thomas Bogendoerfer, Vasily Gorbik, Heiko Carstens,
	linux-mips, linux-kernel, Paul Mackerras, linux-crypto,
	sparclinux, Alexander Gordeev, Christian Borntraeger,
	linuxppc-dev, David S. Miller

On Mon, Dec 20, 2021 at 05:23:13PM +0800, Tianjia Zhang wrote:
> This series of patches is mainly for repetitive code cleaning. The sha
> algorithm has provided generic context initialization implementation.
> The context initialization code in the optimized implementation of each
> platform is a repetitive code and can be deleted. The sha*_base_init()
> series of functions are used uniformly.
> 
> Tianjia Zhang (5):
>   crypto: sha256 - remove duplicate generic hash init function
>   crypto: mips/sha - remove duplicate hash init function
>   crypto: powerpc/sha - remove duplicate hash init function
>   crypto: sparc/sha - remove duplicate hash init function
>   crypto: s390/sha512 - Use macros instead of direct IV numbers
> 
>  arch/mips/cavium-octeon/crypto/octeon-sha1.c  | 17 +-------
>  .../mips/cavium-octeon/crypto/octeon-sha256.c | 39 ++-----------------
>  .../mips/cavium-octeon/crypto/octeon-sha512.c | 39 ++-----------------
>  arch/powerpc/crypto/sha1-spe-glue.c           | 17 +-------
>  arch/powerpc/crypto/sha1.c                    | 14 +------
>  arch/powerpc/crypto/sha256-spe-glue.c         | 39 ++-----------------
>  arch/s390/crypto/sha512_s390.c                | 32 +++++++--------
>  arch/sparc/crypto/sha1_glue.c                 | 14 +------
>  arch/sparc/crypto/sha256_glue.c               | 37 ++----------------
>  arch/sparc/crypto/sha512_glue.c               | 37 ++----------------
>  crypto/sha256_generic.c                       | 16 +-------
>  11 files changed, 41 insertions(+), 260 deletions(-)

All applied.  Thanks.
-- 
Email: Herbert Xu <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2021-12-31 12:05 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-20  9:23 [PATCH 0/5] Remove duplicate context init function for sha algorithm Tianjia Zhang
2021-12-20  9:23 ` [PATCH 1/5] crypto: sha256 - remove duplicate generic hash init function Tianjia Zhang
2021-12-22 22:35   ` Julian Calaby
2021-12-22 22:35     ` Julian Calaby
2021-12-23  2:59     ` Tianjia Zhang
2021-12-23  2:59       ` Tianjia Zhang
2021-12-20  9:23 ` [PATCH 2/5] crypto: mips/sha - remove duplicate " Tianjia Zhang
2021-12-20  9:23 ` [PATCH 3/5] crypto: powerpc/sha " Tianjia Zhang
2021-12-20  9:23 ` [PATCH 4/5] crypto: sparc/sha " Tianjia Zhang
2021-12-20  9:23 ` [PATCH 5/5] crypto: s390/sha512 - Use macros instead of direct IV numbers Tianjia Zhang
2021-12-31 11:34 ` [PATCH 0/5] Remove duplicate context init function for sha algorithm Herbert Xu
2021-12-31 11:34   ` Herbert Xu

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.