From 32c539884d098345bf0fa8554ff2118be7571879 Mon Sep 17 00:00:00 2001 From: Thorsten Blum Date: Thu, 11 Dec 2025 11:15:55 +0100 Subject: [PATCH] crypto: algapi - Use crypto_unregister_algs in crypto_register_algs Replace the for loop with a call to crypto_unregister_algs(). Return 'ret' immediately and remove the goto statement to simplify the error handling code. In crypto_unregister_algs(), unregister the algorithms in reverse order. Signed-off-by: Thorsten Blum Signed-off-by: Herbert Xu --- crypto/algapi.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/crypto/algapi.c b/crypto/algapi.c index e604d0d8b7b41..ac4fc790687e4 100644 --- a/crypto/algapi.c +++ b/crypto/algapi.c @@ -511,17 +511,13 @@ int crypto_register_algs(struct crypto_alg *algs, int count) for (i = 0; i < count; i++) { ret = crypto_register_alg(&algs[i]); - if (ret) - goto err; + if (ret) { + crypto_unregister_algs(algs, i); + return ret; + } } return 0; - -err: - for (--i; i >= 0; --i) - crypto_unregister_alg(&algs[i]); - - return ret; } EXPORT_SYMBOL_GPL(crypto_register_algs); @@ -529,7 +525,7 @@ void crypto_unregister_algs(struct crypto_alg *algs, int count) { int i; - for (i = 0; i < count; i++) + for (i = count - 1; i >= 0; --i) crypto_unregister_alg(&algs[i]); } EXPORT_SYMBOL_GPL(crypto_unregister_algs); -- 2.47.3