summaryrefslogtreecommitdiff
path: root/crypto/crypto_user_base.c
diff options
context:
space:
mode:
authorEric Biggers <ebiggers@google.com>2019-12-15 15:51:19 -0800
committerHerbert Xu <herbert@gondor.apana.org.au>2019-12-20 14:58:35 +0800
commitc6d633a927499f35a06455a960ad6b5a59c87c2c (patch)
tree3e0ac15490f96bd4e5570f8f2e3613d10caced90 /crypto/crypto_user_base.c
parent0e89640b640d7f726bcbf6903c78257a28e56f3c (diff)
downloadlwn-c6d633a927499f35a06455a960ad6b5a59c87c2c.tar.gz
lwn-c6d633a927499f35a06455a960ad6b5a59c87c2c.zip
crypto: algapi - make unregistration functions return void
Some of the algorithm unregistration functions return -ENOENT when asked to unregister a non-registered algorithm, while others always return 0 or always return void. But no users check the return value, except for two of the bulk unregistration functions which print a message on error but still always return 0 to their caller, and crypto_del_alg() which calls crypto_unregister_instance() which always returns 0. Since unregistering a non-registered algorithm is always a kernel bug but there isn't anything callers should do to handle this situation at runtime, let's simplify things by making all the unregistration functions return void, and moving the error message into crypto_unregister_alg() and upgrading it to a WARN(). Signed-off-by: Eric Biggers <ebiggers@google.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto/crypto_user_base.c')
-rw-r--r--crypto/crypto_user_base.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/crypto/crypto_user_base.c b/crypto/crypto_user_base.c
index b785c476de67..3fa20f12989f 100644
--- a/crypto/crypto_user_base.c
+++ b/crypto/crypto_user_base.c
@@ -323,7 +323,8 @@ static int crypto_del_alg(struct sk_buff *skb, struct nlmsghdr *nlh,
if (refcount_read(&alg->cra_refcnt) > 2)
goto drop_alg;
- err = crypto_unregister_instance((struct crypto_instance *)alg);
+ crypto_unregister_instance((struct crypto_instance *)alg);
+ err = 0;
drop_alg:
crypto_mod_put(alg);