diff options
| author | Goetz Goerisch | 2026-05-21 12:04:17 +0000 |
|---|---|---|
| committer | Hauke Mehrtens | 2026-05-25 22:03:34 +0000 |
| commit | bcff9902c3db5e130ccd5f66fdc5c7cfbe71f8e8 (patch) | |
| tree | 004677804f3713da57cf7ea6a02e53c81780f8e3 | |
| parent | a8382a4821e8b845fe15dc357a86d1a33c5bdc55 (diff) | |
| download | openwrt-bcff9902c3db5e130ccd5f66fdc5c7cfbe71f8e8.tar.gz | |
kernel: backport crypto: talitos - stop using crypto_ahash::init
This patch is not yet backported to the 6.6.y tree.
It is a prerequisite for kernel 6.6.140 to build for mpc85xx.
drivers/crypto/talitos.c: In function 'ahash_digest':
drivers/crypto/talitos.c:2204:16: error: 'struct talitos_ahash_req_ctx' has no member named 'last'
2204 | req_ctx->last = 1;
| ^~~~~
Link: https://lore.kernel.org/all/DIOA24QU02W5.2RSVK05RE7BJK@bootlin.com/
Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23435
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
| -rw-r--r-- | target/linux/generic/backport-6.6/911-v6.7-crypto-talitos-stop-using-crypto_ahash-init.patch | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/target/linux/generic/backport-6.6/911-v6.7-crypto-talitos-stop-using-crypto_ahash-init.patch b/target/linux/generic/backport-6.6/911-v6.7-crypto-talitos-stop-using-crypto_ahash-init.patch new file mode 100644 index 0000000000..6653411bba --- /dev/null +++ b/target/linux/generic/backport-6.6/911-v6.7-crypto-talitos-stop-using-crypto_ahash-init.patch @@ -0,0 +1,52 @@ +From 9826d1d6ed5f86cb3d61610b3b1fe31e96a40418 Mon Sep 17 00:00:00 2001 +From: Eric Biggers <ebiggers@google.com> +Date: Sun, 22 Oct 2023 01:10:57 -0700 +Subject: crypto: talitos - stop using crypto_ahash::init + +The function pointer crypto_ahash::init is an internal implementation +detail of the ahash API that exists to help it support both ahash and +shash algorithms. With an upcoming refactoring of how the ahash API +supports shash algorithms, this field will be removed. + +Some drivers are invoking crypto_ahash::init to call into their own +code, which is unnecessary and inefficient. The talitos driver is one +of those drivers. Make it just call its own code directly. + +Signed-off-by: Eric Biggers <ebiggers@google.com> +Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> +--- + drivers/crypto/talitos.c | 15 +++++++++------ + 1 file changed, 9 insertions(+), 6 deletions(-) + +--- a/drivers/crypto/talitos.c ++++ b/drivers/crypto/talitos.c +@@ -2119,13 +2119,14 @@ static int ahash_finup(struct ahash_requ + + static int ahash_digest(struct ahash_request *areq) + { +- struct talitos_ahash_req_ctx *req_ctx = ahash_request_ctx(areq); +- struct crypto_ahash *ahash = crypto_ahash_reqtfm(areq); +- +- ahash->init(areq); +- req_ctx->last = 1; ++ ahash_init(areq); ++ return ahash_finup(areq); ++} + +- return ahash_process_req(areq, areq->nbytes); ++static int ahash_digest_sha224_swinit(struct ahash_request *areq) ++{ ++ ahash_init_sha224_swinit(areq); ++ return ahash_finup(areq); + } + + static int ahash_export(struct ahash_request *areq, void *out) +@@ -3242,6 +3243,8 @@ static struct talitos_crypto_alg *talito + (!strcmp(alg->cra_name, "sha224") || + !strcmp(alg->cra_name, "hmac(sha224)"))) { + t_alg->algt.alg.hash.init = ahash_init_sha224_swinit; ++ t_alg->algt.alg.hash.digest = ++ ahash_digest_sha224_swinit; + t_alg->algt.desc_hdr_template = + DESC_HDR_TYPE_COMMON_NONSNOOP_NO_AFEU | + DESC_HDR_SEL0_MDEUA | |