diff options
author | Herbert Xu <herbert@gondor.apana.org.au> | 2023-06-15 17:00:51 +0800 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2023-06-23 16:15:36 +0800 |
commit | 1e5aeb9ee392d359f5ac068e6bbc0a7bcb84230f (patch) | |
tree | cb5d7141b5b84c901834d018183c1b89207c18a7 /crypto/api.c | |
parent | b3728d78d9faa3c6742ba6cfaec7357f484f07b1 (diff) | |
download | linux-crypto-1e5aeb9ee392d359f5ac068e6bbc0a7bcb84230f.tar.gz linux-crypto-1e5aeb9ee392d359f5ac068e6bbc0a7bcb84230f.zip |
crypto: api - Add __crypto_alloc_tfmgfp
Use it straight away in crypto_clone_cipher(), as that is not meant to
sleep.
Fixes: f5a7da4cc8b8 ("crypto: cipher - Add crypto_clone_cipher")
Signed-off-by: Dmitry Safonov <dima@arista.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto/api.c')
-rw-r--r-- | crypto/api.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/crypto/api.c b/crypto/api.c index a94bd069..b9cc0c90 100644 --- a/crypto/api.c +++ b/crypto/api.c @@ -386,15 +386,15 @@ void crypto_shoot_alg(struct crypto_alg *alg) } EXPORT_SYMBOL_GPL(crypto_shoot_alg); -struct crypto_tfm *__crypto_alloc_tfm(struct crypto_alg *alg, u32 type, - u32 mask) +struct crypto_tfm *__crypto_alloc_tfmgfp(struct crypto_alg *alg, u32 type, + u32 mask, gfp_t gfp) { struct crypto_tfm *tfm = NULL; unsigned int tfm_size; int err = -ENOMEM; tfm_size = sizeof(*tfm) + crypto_ctxsize(alg, type, mask); - tfm = kzalloc(tfm_size, GFP_KERNEL); + tfm = kzalloc(tfm_size, gfp); if (tfm == NULL) goto out_err; @@ -416,6 +416,13 @@ out_err: out: return tfm; } +EXPORT_SYMBOL_GPL(__crypto_alloc_tfmgfp); + +struct crypto_tfm *__crypto_alloc_tfm(struct crypto_alg *alg, u32 type, + u32 mask) +{ + return __crypto_alloc_tfmgfp(alg, type, mask, GFP_KERNEL); +} EXPORT_SYMBOL_GPL(__crypto_alloc_tfm); /* |