summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--crypto/ahash.c12
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);