2019-09-23 14:40:58

by Markus Elfring

[permalink] [raw]
Subject: [PATCH] EDAC: Armada XP: Use devm_platform_ioremap_resource() in two functions

From: Markus Elfring <[email protected]>
Date: Sat, 21 Sep 2019 17:50:17 +0200

Simplify these function implementations by using a known function.

This issue was detected by using the Coccinelle software.

Signed-off-by: Markus Elfring <[email protected]>
---
drivers/edac/armada_xp_edac.c | 18 ++----------------
1 file changed, 2 insertions(+), 16 deletions(-)

diff --git a/drivers/edac/armada_xp_edac.c b/drivers/edac/armada_xp_edac.c
index 7f227bdcbc84..096d8de3893e 100644
--- a/drivers/edac/armada_xp_edac.c
+++ b/drivers/edac/armada_xp_edac.c
@@ -286,17 +286,10 @@ static int axp_mc_probe(struct platform_device *pdev)
struct edac_mc_layer layers[1];
const struct of_device_id *id;
struct mem_ctl_info *mci;
- struct resource *r;
void __iomem *base;
uint32_t config;

- r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
- if (!r) {
- dev_err(&pdev->dev, "Unable to get mem resource\n");
- return -ENODEV;
- }
-
- base = devm_ioremap_resource(&pdev->dev, r);
+ base = devm_platform_ioremap_resource(pdev, 0);
if (IS_ERR(base)) {
dev_err(&pdev->dev, "Unable to map regs\n");
return PTR_ERR(base);
@@ -516,15 +509,8 @@ static int aurora_l2_probe(struct platform_device *pdev)
const struct of_device_id *id;
uint32_t l2x0_aux_ctrl;
void __iomem *base;
- struct resource *r;
-
- r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
- if (!r) {
- dev_err(&pdev->dev, "Unable to get mem resource\n");
- return -ENODEV;
- }

- base = devm_ioremap_resource(&pdev->dev, r);
+ base = devm_platform_ioremap_resource(pdev, 0);
if (IS_ERR(base)) {
dev_err(&pdev->dev, "Unable to map regs\n");
return PTR_ERR(base);
--
2.23.0


2019-09-25 07:35:02

by Robert Richter

[permalink] [raw]
Subject: Re: [PATCH] EDAC: Armada XP: Use devm_platform_ioremap_resource() in two functions

Hi Markus,

On 21.09.19 17:57:24, Markus Elfring wrote:
> From: Markus Elfring <[email protected]>
> Date: Sat, 21 Sep 2019 17:50:17 +0200
>
> Simplify these function implementations by using a known function.
>
> This issue was detected by using the Coccinelle software.

Which semantic patch did you use here?

The kernel's spatch for this pattern only found and fixed the
following:

$ make coccicheck COCCI=scripts/coccinelle/api/devm_platform_ioremap_resource.cocci MODE=patch M=drivers/edac | patch -p1
patching file drivers/edac/ti_edac.c
patching file drivers/edac/xgene_edac.c
patching file drivers/edac/synopsys_edac.c

There are probably more drivers to fix than the above and the one you
fixed:

$ git grep -l platform_get_resource drivers/edac/
drivers/edac/altera_edac.c
drivers/edac/armada_xp_edac.c
drivers/edac/aspeed_edac.c
drivers/edac/bluefield_edac.c
drivers/edac/cpc925_edac.c
drivers/edac/highbank_l2_edac.c
drivers/edac/highbank_mc_edac.c
drivers/edac/mv64x60_edac.c
drivers/edac/synopsys_edac.c
drivers/edac/ti_edac.c
drivers/edac/xgene_edac.c

So while at it, how about fixing the .cocci patch in scripts/ and run
it for drivers/edac? There should be one patch only for all edac
drivers.

Thanks,

-Robert

2019-09-25 10:12:09

by Markus Elfring

[permalink] [raw]
Subject: Re: EDAC: Armada XP: Use devm_platform_ioremap_resource() in two functions

> Which semantic patch did you use here?

I suggest to take another look at details around background information
on a subject like “Coccinelle: api: add devm_platform_ioremap_resource script”.
https://lore.kernel.org/r/[email protected]/
https://systeme.lip6.fr/pipermail/cocci/2019-September/006303.html
https://lkml.org/lkml/2019/9/19/81


> There are probably more drivers to fix than the above and the one you fixed:

Yes, of course.

I concentrated my update suggestions on a specific source code
transformation variant recently.


> So while at it, how about fixing the .cocci patch in scripts/ and run
> it for drivers/edac?

Some developers are trying to improve affected software components further.
Did you eventually receive similar patches already by other contributors?


> There should be one patch only for all edac drivers.

Is there consensus for this kind of change expectation?

Regards,
Markus