[RFC PATCH 8/8] crypto: api - Remove core support for cloning tfms
From: Eric Biggers
Date: Sat Mar 07 2026 - 17:48:35 EST
Since all callers of crypto_clone_tfm() have been removed, remove it.
Signed-off-by: Eric Biggers <ebiggers@xxxxxxxxxx>
---
crypto/api.c | 26 --------------------------
crypto/internal.h | 2 --
2 files changed, 28 deletions(-)
diff --git a/crypto/api.c b/crypto/api.c
index 74e17d5049c99..d019d1979857d 100644
--- a/crypto/api.c
+++ b/crypto/api.c
@@ -558,36 +558,10 @@ void *crypto_create_tfm_node(struct crypto_alg *alg,
out:
return mem;
}
EXPORT_SYMBOL_GPL(crypto_create_tfm_node);
-void *crypto_clone_tfm(const struct crypto_type *frontend,
- struct crypto_tfm *otfm)
-{
- struct crypto_alg *alg = otfm->__crt_alg;
- struct crypto_tfm *tfm;
- char *mem;
-
- mem = ERR_PTR(-ESTALE);
- if (unlikely(!crypto_mod_get(alg)))
- goto out;
-
- mem = crypto_alloc_tfmmem(alg, frontend, otfm->node, GFP_ATOMIC);
- if (IS_ERR(mem)) {
- crypto_mod_put(alg);
- goto out;
- }
-
- tfm = (struct crypto_tfm *)(mem + frontend->tfmsize);
- tfm->crt_flags = otfm->crt_flags;
- tfm->fb = tfm;
-
-out:
- return mem;
-}
-EXPORT_SYMBOL_GPL(crypto_clone_tfm);
-
struct crypto_alg *crypto_find_alg(const char *alg_name,
const struct crypto_type *frontend,
u32 type, u32 mask)
{
if (frontend) {
diff --git a/crypto/internal.h b/crypto/internal.h
index 8fbe0226d48e2..96f84abfac91e 100644
--- a/crypto/internal.h
+++ b/crypto/internal.h
@@ -124,12 +124,10 @@ struct crypto_tfm *__crypto_alloc_tfmgfp(struct crypto_alg *alg, u32 type,
u32 mask, gfp_t gfp);
struct crypto_tfm *__crypto_alloc_tfm(struct crypto_alg *alg, u32 type,
u32 mask);
void *crypto_create_tfm_node(struct crypto_alg *alg,
const struct crypto_type *frontend, int node);
-void *crypto_clone_tfm(const struct crypto_type *frontend,
- struct crypto_tfm *otfm);
static inline void *crypto_create_tfm(struct crypto_alg *alg,
const struct crypto_type *frontend)
{
return crypto_create_tfm_node(alg, frontend, NUMA_NO_NODE);
--
2.53.0