crypto: s5p-sss - use unregister_{ahashes,skciphers} in probe/remove

Replace multiple for loops with calls to crypto_unregister_ahashes() and
crypto_unregister_skciphers().

If crypto_register_skcipher() fails in s5p_aes_probe(), log the error
directly instead of checking 'i < ARRAY_SIZE(algs)' later.  Also drop
now-unused local index variables.  No functional changes.

Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Reviewed-by: Vladimir Zapolskiy <vz@mleia.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
master
Thorsten Blum 2026-03-17 09:04:52 +01:00 committed by Herbert Xu
parent f9bbd547cf
commit f30579bbae
1 changed files with 10 additions and 17 deletions

View File

@ -2131,7 +2131,7 @@ static struct skcipher_alg algs[] = {
static int s5p_aes_probe(struct platform_device *pdev)
{
struct device *dev = &pdev->dev;
int i, j, err;
int i, err;
const struct samsung_aes_variant *variant;
struct s5p_aes_dev *pdata;
struct resource *res;
@ -2237,8 +2237,11 @@ static int s5p_aes_probe(struct platform_device *pdev)
for (i = 0; i < ARRAY_SIZE(algs); i++) {
err = crypto_register_skcipher(&algs[i]);
if (err)
if (err) {
dev_err(dev, "can't register '%s': %d\n",
algs[i].base.cra_name, err);
goto err_algs;
}
}
if (pdata->use_hash) {
@ -2265,20 +2268,12 @@ static int s5p_aes_probe(struct platform_device *pdev)
return 0;
err_hash:
for (j = hash_i - 1; j >= 0; j--)
crypto_unregister_ahash(&algs_sha1_md5_sha256[j]);
crypto_unregister_ahashes(algs_sha1_md5_sha256, hash_i);
tasklet_kill(&pdata->hash_tasklet);
res->end -= 0x300;
err_algs:
if (i < ARRAY_SIZE(algs))
dev_err(dev, "can't register '%s': %d\n", algs[i].base.cra_name,
err);
for (j = 0; j < i; j++)
crypto_unregister_skcipher(&algs[j]);
crypto_unregister_skciphers(algs, i);
tasklet_kill(&pdata->tasklet);
err_irq:
@ -2294,15 +2289,13 @@ err_clk:
static void s5p_aes_remove(struct platform_device *pdev)
{
struct s5p_aes_dev *pdata = platform_get_drvdata(pdev);
int i;
for (i = 0; i < ARRAY_SIZE(algs); i++)
crypto_unregister_skcipher(&algs[i]);
crypto_unregister_skciphers(algs, ARRAY_SIZE(algs));
tasklet_kill(&pdata->tasklet);
if (pdata->use_hash) {
for (i = ARRAY_SIZE(algs_sha1_md5_sha256) - 1; i >= 0; i--)
crypto_unregister_ahash(&algs_sha1_md5_sha256[i]);
crypto_unregister_ahashes(algs_sha1_md5_sha256,
ARRAY_SIZE(algs_sha1_md5_sha256));
pdata->res->end -= 0x300;
tasklet_kill(&pdata->hash_tasklet);