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
parent
f9bbd547cf
commit
f30579bbae
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Reference in New Issue