summaryrefslogtreecommitdiff
path: root/crypto/api.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2009-02-13 13:05:57 +0100
committerIngo Molnar <mingo@elte.hu>2009-02-13 13:05:57 +0100
commitced91f4e1addc0ab3d00cbc36af7e4a071b3322b (patch)
tree2973da25894efebef2980db676f9cc91256b328d /crypto/api.c
parentcaea0bbd996a843c1a9e50a327c3c3dbd6aac534 (diff)
parentab2867eed88e7823dc312e585a65c1c86040edc4 (diff)
downloadlinux-crypto-ced91f4e1addc0ab3d00cbc36af7e4a071b3322b.tar.gz
linux-crypto-ced91f4e1addc0ab3d00cbc36af7e4a071b3322b.zip
Merge branch 'x86/core' into x86/headers
Diffstat (limited to 'crypto/api.c')
-rw-r--r--crypto/api.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/crypto/api.c b/crypto/api.c
index 9975a7bd..efe77df6 100644
--- a/crypto/api.c
+++ b/crypto/api.c
@@ -557,34 +557,34 @@ err:
return ERR_PTR(err);
}
EXPORT_SYMBOL_GPL(crypto_alloc_tfm);
-
+
/*
- * crypto_free_tfm - Free crypto transform
+ * crypto_destroy_tfm - Free crypto transform
+ * @mem: Start of tfm slab
* @tfm: Transform to free
*
- * crypto_free_tfm() frees up the transform and any associated resources,
+ * This function frees up the transform and any associated resources,
* then drops the refcount on the associated algorithm.
*/
-void crypto_free_tfm(struct crypto_tfm *tfm)
+void crypto_destroy_tfm(void *mem, struct crypto_tfm *tfm)
{
struct crypto_alg *alg;
int size;
- if (unlikely(!tfm))
+ if (unlikely(!mem))
return;
alg = tfm->__crt_alg;
- size = sizeof(*tfm) + alg->cra_ctxsize;
+ size = ksize(mem);
if (!tfm->exit && alg->cra_exit)
alg->cra_exit(tfm);
crypto_exit_ops(tfm);
crypto_mod_put(alg);
- memset(tfm, 0, size);
- kfree(tfm);
+ memset(mem, 0, size);
+ kfree(mem);
}
-
-EXPORT_SYMBOL_GPL(crypto_free_tfm);
+EXPORT_SYMBOL_GPL(crypto_destroy_tfm);
int crypto_has_alg(const char *name, u32 type, u32 mask)
{