* [PATCH] crypto: cryptd - Remove unused functions
@ 2026-03-20 22:17 Eric Biggers
2026-03-27 10:09 ` Herbert Xu
0 siblings, 1 reply; 2+ messages in thread
From: Eric Biggers @ 2026-03-20 22:17 UTC (permalink / raw)
To: linux-crypto, Herbert Xu; +Cc: linux-kernel, Eric Biggers
Many functions in cryptd.c no longer have any caller. Remove them.
Also remove several associated structs and includes. Finally, inline
cryptd_shash_desc() into its only caller, allowing it to be removed too.
Signed-off-by: Eric Biggers <ebiggers@kernel.org>
---
This patch is targeting cryptodev/master. It has a dependency on
"crypto: simd - Remove unused skcipher support"
(https://lore.kernel.org/r/20260314213720.91525-1-ebiggers@kernel.org/)
crypto/cryptd.c | 112 +---------------------------------------
include/crypto/cryptd.h | 33 ------------
2 files changed, 2 insertions(+), 143 deletions(-)
diff --git a/crypto/cryptd.c b/crypto/cryptd.c
index cd38f4676176..aba9fe0f23b4 100644
--- a/crypto/cryptd.c
+++ b/crypto/cryptd.c
@@ -644,11 +644,12 @@ static int cryptd_hash_export(struct ahash_request *req, void *out)
static int cryptd_hash_import(struct ahash_request *req, const void *in)
{
struct crypto_ahash *tfm = crypto_ahash_reqtfm(req);
struct cryptd_hash_ctx *ctx = crypto_ahash_ctx(tfm);
- struct shash_desc *desc = cryptd_shash_desc(req);
+ struct cryptd_hash_request_ctx *rctx = ahash_request_ctx(req);
+ struct shash_desc *desc = &rctx->desc;
desc->tfm = ctx->child;
return crypto_shash_import(desc, in);
}
@@ -950,119 +951,10 @@ static struct crypto_template cryptd_tmpl = {
.name = "cryptd",
.create = cryptd_create,
.module = THIS_MODULE,
};
-struct cryptd_skcipher *cryptd_alloc_skcipher(const char *alg_name,
- u32 type, u32 mask)
-{
- char cryptd_alg_name[CRYPTO_MAX_ALG_NAME];
- struct cryptd_skcipher_ctx *ctx;
- struct crypto_skcipher *tfm;
-
- if (snprintf(cryptd_alg_name, CRYPTO_MAX_ALG_NAME,
- "cryptd(%s)", alg_name) >= CRYPTO_MAX_ALG_NAME)
- return ERR_PTR(-EINVAL);
-
- tfm = crypto_alloc_skcipher(cryptd_alg_name, type, mask);
- if (IS_ERR(tfm))
- return ERR_CAST(tfm);
-
- if (tfm->base.__crt_alg->cra_module != THIS_MODULE) {
- crypto_free_skcipher(tfm);
- return ERR_PTR(-EINVAL);
- }
-
- ctx = crypto_skcipher_ctx(tfm);
- refcount_set(&ctx->refcnt, 1);
-
- return container_of(tfm, struct cryptd_skcipher, base);
-}
-EXPORT_SYMBOL_GPL(cryptd_alloc_skcipher);
-
-struct crypto_skcipher *cryptd_skcipher_child(struct cryptd_skcipher *tfm)
-{
- struct cryptd_skcipher_ctx *ctx = crypto_skcipher_ctx(&tfm->base);
-
- return ctx->child;
-}
-EXPORT_SYMBOL_GPL(cryptd_skcipher_child);
-
-bool cryptd_skcipher_queued(struct cryptd_skcipher *tfm)
-{
- struct cryptd_skcipher_ctx *ctx = crypto_skcipher_ctx(&tfm->base);
-
- return refcount_read(&ctx->refcnt) - 1;
-}
-EXPORT_SYMBOL_GPL(cryptd_skcipher_queued);
-
-void cryptd_free_skcipher(struct cryptd_skcipher *tfm)
-{
- struct cryptd_skcipher_ctx *ctx = crypto_skcipher_ctx(&tfm->base);
-
- if (refcount_dec_and_test(&ctx->refcnt))
- crypto_free_skcipher(&tfm->base);
-}
-EXPORT_SYMBOL_GPL(cryptd_free_skcipher);
-
-struct cryptd_ahash *cryptd_alloc_ahash(const char *alg_name,
- u32 type, u32 mask)
-{
- char cryptd_alg_name[CRYPTO_MAX_ALG_NAME];
- struct cryptd_hash_ctx *ctx;
- struct crypto_ahash *tfm;
-
- if (snprintf(cryptd_alg_name, CRYPTO_MAX_ALG_NAME,
- "cryptd(%s)", alg_name) >= CRYPTO_MAX_ALG_NAME)
- return ERR_PTR(-EINVAL);
- tfm = crypto_alloc_ahash(cryptd_alg_name, type, mask);
- if (IS_ERR(tfm))
- return ERR_CAST(tfm);
- if (tfm->base.__crt_alg->cra_module != THIS_MODULE) {
- crypto_free_ahash(tfm);
- return ERR_PTR(-EINVAL);
- }
-
- ctx = crypto_ahash_ctx(tfm);
- refcount_set(&ctx->refcnt, 1);
-
- return __cryptd_ahash_cast(tfm);
-}
-EXPORT_SYMBOL_GPL(cryptd_alloc_ahash);
-
-struct crypto_shash *cryptd_ahash_child(struct cryptd_ahash *tfm)
-{
- struct cryptd_hash_ctx *ctx = crypto_ahash_ctx(&tfm->base);
-
- return ctx->child;
-}
-EXPORT_SYMBOL_GPL(cryptd_ahash_child);
-
-struct shash_desc *cryptd_shash_desc(struct ahash_request *req)
-{
- struct cryptd_hash_request_ctx *rctx = ahash_request_ctx(req);
- return &rctx->desc;
-}
-EXPORT_SYMBOL_GPL(cryptd_shash_desc);
-
-bool cryptd_ahash_queued(struct cryptd_ahash *tfm)
-{
- struct cryptd_hash_ctx *ctx = crypto_ahash_ctx(&tfm->base);
-
- return refcount_read(&ctx->refcnt) - 1;
-}
-EXPORT_SYMBOL_GPL(cryptd_ahash_queued);
-
-void cryptd_free_ahash(struct cryptd_ahash *tfm)
-{
- struct cryptd_hash_ctx *ctx = crypto_ahash_ctx(&tfm->base);
-
- if (refcount_dec_and_test(&ctx->refcnt))
- crypto_free_ahash(&tfm->base);
-}
-EXPORT_SYMBOL_GPL(cryptd_free_ahash);
-
struct cryptd_aead *cryptd_alloc_aead(const char *alg_name,
u32 type, u32 mask)
{
char cryptd_alg_name[CRYPTO_MAX_ALG_NAME];
struct cryptd_aead_ctx *ctx;
diff --git a/include/crypto/cryptd.h b/include/crypto/cryptd.h
index 796d986e58e1..29c5878a3609 100644
--- a/include/crypto/cryptd.h
+++ b/include/crypto/cryptd.h
@@ -14,43 +14,10 @@
#define _CRYPTO_CRYPT_H
#include <linux/types.h>
#include <crypto/aead.h>
-#include <crypto/hash.h>
-#include <crypto/skcipher.h>
-
-struct cryptd_skcipher {
- struct crypto_skcipher base;
-};
-
-/* alg_name should be algorithm to be cryptd-ed */
-struct cryptd_skcipher *cryptd_alloc_skcipher(const char *alg_name,
- u32 type, u32 mask);
-struct crypto_skcipher *cryptd_skcipher_child(struct cryptd_skcipher *tfm);
-/* Must be called without moving CPUs. */
-bool cryptd_skcipher_queued(struct cryptd_skcipher *tfm);
-void cryptd_free_skcipher(struct cryptd_skcipher *tfm);
-
-struct cryptd_ahash {
- struct crypto_ahash base;
-};
-
-static inline struct cryptd_ahash *__cryptd_ahash_cast(
- struct crypto_ahash *tfm)
-{
- return (struct cryptd_ahash *)tfm;
-}
-
-/* alg_name should be algorithm to be cryptd-ed */
-struct cryptd_ahash *cryptd_alloc_ahash(const char *alg_name,
- u32 type, u32 mask);
-struct crypto_shash *cryptd_ahash_child(struct cryptd_ahash *tfm);
-struct shash_desc *cryptd_shash_desc(struct ahash_request *req);
-/* Must be called without moving CPUs. */
-bool cryptd_ahash_queued(struct cryptd_ahash *tfm);
-void cryptd_free_ahash(struct cryptd_ahash *tfm);
struct cryptd_aead {
struct crypto_aead base;
};
base-commit: c708d3fad4217f23421b8496e231b0c5cee617a0
prerequisite-patch-id: 81ed16d662b3981bb70c91248b93177679d9ea83
--
2.53.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] crypto: cryptd - Remove unused functions
2026-03-20 22:17 [PATCH] crypto: cryptd - Remove unused functions Eric Biggers
@ 2026-03-27 10:09 ` Herbert Xu
0 siblings, 0 replies; 2+ messages in thread
From: Herbert Xu @ 2026-03-27 10:09 UTC (permalink / raw)
To: Eric Biggers; +Cc: linux-crypto, linux-kernel
On Fri, Mar 20, 2026 at 03:17:27PM -0700, Eric Biggers wrote:
> Many functions in cryptd.c no longer have any caller. Remove them.
>
> Also remove several associated structs and includes. Finally, inline
> cryptd_shash_desc() into its only caller, allowing it to be removed too.
>
> Signed-off-by: Eric Biggers <ebiggers@kernel.org>
> ---
>
> This patch is targeting cryptodev/master. It has a dependency on
> "crypto: simd - Remove unused skcipher support"
> (https://lore.kernel.org/r/20260314213720.91525-1-ebiggers@kernel.org/)
>
> crypto/cryptd.c | 112 +---------------------------------------
> include/crypto/cryptd.h | 33 ------------
> 2 files changed, 2 insertions(+), 143 deletions(-)
Patch 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] 2+ messages in thread
end of thread, other threads:[~2026-03-27 10:09 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-20 22:17 [PATCH] crypto: cryptd - Remove unused functions Eric Biggers
2026-03-27 10:09 ` Herbert Xu
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox