summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--crypto/rng.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/crypto/rng.c b/crypto/rng.c
index 5982dcea1010..c6165c8eb387 100644
--- a/crypto/rng.c
+++ b/crypto/rng.c
@@ -202,17 +202,13 @@ int crypto_register_rngs(struct rng_alg *algs, int count)
for (i = 0; i < count; i++) {
ret = crypto_register_rng(algs + i);
- if (ret)
- goto err;
+ if (ret) {
+ crypto_unregister_rngs(algs, i);
+ return ret;
+ }
}
return 0;
-
-err:
- for (--i; i >= 0; --i)
- crypto_unregister_rng(algs + i);
-
- return ret;
}
EXPORT_SYMBOL_GPL(crypto_register_rngs);