summaryrefslogtreecommitdiffstats
path: root/kernel/padata.c
diff options
context:
space:
mode:
authorEric Biggers <ebiggers@google.com>2020-02-25 20:59:22 -0800
committerHerbert Xu <herbert@gondor.apana.org.au>2020-03-06 12:28:24 +1100
commit07b24c7c08bdc2d36de10881a17145426f47742b (patch)
treeaacd4b77d79ee974159ef97bd846cf721a521cd0 /kernel/padata.c
parentd57063103332b95eac9c118900f35700a491da08 (diff)
downloadlinux-07b24c7c08bdc2d36de10881a17145426f47742b.tar.gz
linux-07b24c7c08bdc2d36de10881a17145426f47742b.tar.bz2
linux-07b24c7c08bdc2d36de10881a17145426f47742b.zip
crypto: pcrypt - simplify error handling in pcrypt_create_aead()
Simplify the error handling in pcrypt_create_aead() by taking advantage of crypto_grab_aead() now handling an ERR_PTR() name and by taking advantage of crypto_drop_aead() now accepting (as a no-op) a spawn that hasn't been grabbed yet. This required also making padata_free_shell() accept a NULL argument. Signed-off-by: Eric Biggers <ebiggers@google.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'kernel/padata.c')
-rw-r--r--kernel/padata.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/kernel/padata.c b/kernel/padata.c
index 62082597d4a2..a6afa12fb75e 100644
--- a/kernel/padata.c
+++ b/kernel/padata.c
@@ -1038,12 +1038,13 @@ EXPORT_SYMBOL(padata_alloc_shell);
*/
void padata_free_shell(struct padata_shell *ps)
{
- struct padata_instance *pinst = ps->pinst;
+ if (!ps)
+ return;
- mutex_lock(&pinst->lock);
+ mutex_lock(&ps->pinst->lock);
list_del(&ps->list);
padata_free_pd(rcu_dereference_protected(ps->pd, 1));
- mutex_unlock(&pinst->lock);
+ mutex_unlock(&ps->pinst->lock);
kfree(ps);
}