[alsa-devel] [PATCH 0/6] simplify platform_get_resource_byname/devm_ioremap_resource
devm_ioremap_resource often uses the result of a call to platform_get_resource_byname as its last argument. devm_ioremap_resource does appropriate error handling on this argument, so error handling can be removed from the call to platform_get_resource_byname.
The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/)
// <smpl> @@ expression pdev,res,n,e,e1; expression ret != 0; identifier l,f; expression list es; @@
( res = f(...); - if (res == NULL) { ... (goto l;|return ret;) } e = devm_ioremap_resource(e1, res); | - res = f(es); ... when != res - if (res == NULL) { ... (goto l;|return ret;) } ... when != res + res = f(es); e = devm_ioremap_resource(e1, res); ) // </smpl>
In practice, f is always platform_get_resource_byname (or platform_get_resource, which was handled by a previous patch series). And the call to platform_get_resource_byname always immediately precedes the call to devm_ioremap_resource.
From: Julia Lawall Julia.Lawall@lip6.fr
Remove unneeded error handling on the result of a call to platform_get_resource_byname when the value is passed to devm_ioremap_resource.
In the case of omap-dmic.c, the error-handling code of devm_ioremap_resource is also corrected to include releasing the clock.
A simplified version of the semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/)
// <smpl> @@ expression pdev,res,e,e1; expression ret != 0; identifier l; @@
res = platform_get_resource_byname(...); - if (res == NULL) { ... (goto l;|return ret;) } e = devm_ioremap_resource(e1, res); // </smpl>
Signed-off-by: Julia Lawall Julia.Lawall@lip6.fr
--- sound/soc/omap/omap-dmic.c | 9 +++------ sound/soc/omap/omap-mcpdm.c | 3 --- 2 files changed, 3 insertions(+), 9 deletions(-)
diff --git a/sound/soc/omap/omap-dmic.c b/sound/soc/omap/omap-dmic.c index 4db1f8e..12e566b 100644 --- a/sound/soc/omap/omap-dmic.c +++ b/sound/soc/omap/omap-dmic.c @@ -480,15 +480,12 @@ static int asoc_dmic_probe(struct platform_device *pdev) dmic->dma_data.filter_data = "up_link";
res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "mpu"); - if (!res) { - dev_err(dmic->dev, "invalid memory resource\n"); - ret = -ENODEV; + dmic->io_base = devm_ioremap_resource(&pdev->dev, res); + if (IS_ERR(dmic->io_base)) { + ret = PTR_ERR(dmic->io_base); goto err_put_clk; }
- dmic->io_base = devm_ioremap_resource(&pdev->dev, res); - if (IS_ERR(dmic->io_base)) - return PTR_ERR(dmic->io_base);
ret = snd_soc_register_component(&pdev->dev, &omap_dmic_component, &omap_dmic_dai, 1); diff --git a/sound/soc/omap/omap-mcpdm.c b/sound/soc/omap/omap-mcpdm.c index a49dc52..90d2a7c 100644 --- a/sound/soc/omap/omap-mcpdm.c +++ b/sound/soc/omap/omap-mcpdm.c @@ -480,9 +480,6 @@ static int asoc_mcpdm_probe(struct platform_device *pdev) mcpdm->dma_data[1].filter_data = "up_link";
res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "mpu"); - if (res == NULL) - return -ENOMEM; - mcpdm->io_base = devm_ioremap_resource(&pdev->dev, res); if (IS_ERR(mcpdm->io_base)) return PTR_ERR(mcpdm->io_base);
Hi
On 08/19/2013 11:51 AM, Julia Lawall wrote:
From: Julia Lawall Julia.Lawall@lip6.fr
Remove unneeded error handling on the result of a call to platform_get_resource_byname when the value is passed to devm_ioremap_resource.
In the case of omap-dmic.c, the error-handling code of devm_ioremap_resource is also corrected to include releasing the clock.
A simplified version of the semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/)
// <smpl> @@ expression pdev,res,e,e1; expression ret != 0; identifier l; @@
res = platform_get_resource_byname(...);
- if (res == NULL) { ... (goto l;|return ret;) } e = devm_ioremap_resource(e1, res);
// </smpl>
Signed-off-by: Julia Lawall Julia.Lawall@lip6.fr
sound/soc/omap/omap-dmic.c | 9 +++------ sound/soc/omap/omap-mcpdm.c | 3 --- 2 files changed, 3 insertions(+), 9 deletions(-)
To the patch and catch of missing clock release in omap-dmic.c in case of failing devm_ioremap_resource:
Acked-by: Jarkko Nikula jarkko.nikula@bitmer.com
On Mon, Aug 19, 2013 at 10:51:51AM +0200, Julia Lawall wrote:
From: Julia Lawall Julia.Lawall@lip6.fr
Remove unneeded error handling on the result of a call to platform_get_resource_byname when the value is passed to devm_ioremap_resource.
Applied, thanks.
participants (3)
-
Jarkko Nikula
-
Julia Lawall
-
Mark Brown