aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/drivers/char
diff options
context:
space:
mode:
authorWei Yongjun <weiyongjun1@huawei.com>2020-08-04 08:11:53 +0000
committerHerbert Xu <herbert@gondor.apana.org.au>2020-08-21 14:43:51 +1000
commit11a954eebc4396b51af745e5242df05f71be6d9e (patch)
tree0df2ddb2575847f33fd4c7aedda864b0e7ee1d1e /drivers/char
parentcrypto: qat - add delay before polling mailbox (diff)
downloadwireguard-linux-11a954eebc4396b51af745e5242df05f71be6d9e.tar.xz
wireguard-linux-11a954eebc4396b51af745e5242df05f71be6d9e.zip
crypto: ingenic - Drop kfree for memory allocated with devm_kzalloc
It's not necessary to free memory allocated with devm_kzalloc and using kfree leads to a double free. Fixes: 190873a0ea45 ("crypto: ingenic - Add hardware RNG for Ingenic JZ4780 and X1000") Reported-by: Hulk Robot <hulkci@huawei.com> Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com> Reviewed-by: 周琰杰 (Zhou Yanjie) <zhouyanjie@wanyeetech.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'drivers/char')
-rw-r--r--drivers/char/hw_random/ingenic-rng.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/drivers/char/hw_random/ingenic-rng.c b/drivers/char/hw_random/ingenic-rng.c
index d704cef64b64..055cfe59f519 100644
--- a/drivers/char/hw_random/ingenic-rng.c
+++ b/drivers/char/hw_random/ingenic-rng.c
@@ -92,8 +92,7 @@ static int ingenic_rng_probe(struct platform_device *pdev)
priv->base = devm_platform_ioremap_resource(pdev, 0);
if (IS_ERR(priv->base)) {
pr_err("%s: Failed to map RNG registers\n", __func__);
- ret = PTR_ERR(priv->base);
- goto err_free_rng;
+ return PTR_ERR(priv->base);
}
priv->version = (enum ingenic_rng_version)of_device_get_match_data(&pdev->dev);
@@ -106,17 +105,13 @@ static int ingenic_rng_probe(struct platform_device *pdev)
ret = hwrng_register(&priv->rng);
if (ret) {
dev_err(&pdev->dev, "Failed to register hwrng\n");
- goto err_free_rng;
+ return ret;
}
platform_set_drvdata(pdev, priv);
dev_info(&pdev->dev, "Ingenic RNG driver registered\n");
return 0;
-
-err_free_rng:
- kfree(priv);
- return ret;
}
static int ingenic_rng_remove(struct platform_device *pdev)