diff --git a/crypto/skcipher.c b/crypto/skcipher.c index 14a820cb06c7..09f1ba82f99a 100644 --- a/crypto/skcipher.c +++ b/crypto/skcipher.c @@ -741,17 +741,13 @@ int crypto_register_skciphers(struct skcipher_alg *algs, int count) for (i = 0; i < count; i++) { ret = crypto_register_skcipher(&algs[i]); - if (ret) - goto err; + if (ret) { + crypto_unregister_skciphers(algs, i); + return ret; + } } return 0; - -err: - for (--i; i >= 0; --i) - crypto_unregister_skcipher(&algs[i]); - - return ret; } EXPORT_SYMBOL_GPL(crypto_register_skciphers);