diff options
| -rw-r--r-- | crypto/ahash.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/crypto/ahash.c b/crypto/ahash.c index 66492ae75fcf..c563a68dc000 100644 --- a/crypto/ahash.c +++ b/crypto/ahash.c @@ -1020,17 +1020,13 @@ int crypto_register_ahashes(struct ahash_alg *algs, int count) for (i = 0; i < count; i++) { ret = crypto_register_ahash(&algs[i]); - if (ret) - goto err; + if (ret) { + crypto_unregister_ahashes(algs, i); + return ret; + } } return 0; - -err: - for (--i; i >= 0; --i) - crypto_unregister_ahash(&algs[i]); - - return ret; } EXPORT_SYMBOL_GPL(crypto_register_ahashes); |
