diff options
author | Eric Biggers <ebiggers@google.com> | 2020-02-25 20:59:22 -0800 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2020-03-06 12:28:24 +1100 |
commit | 07b24c7c08bdc2d36de10881a17145426f47742b (patch) | |
tree | aacd4b77d79ee974159ef97bd846cf721a521cd0 /kernel/padata.c | |
parent | d57063103332b95eac9c118900f35700a491da08 (diff) | |
download | linux-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.c | 7 |
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); } |