From: Markus Elfring <elfr...@users.sourceforge.net> Date: Mon, 7 Sep 2020 13:14:44 +0200
Another wrapper function is available since the commit 890cc39a879906b63912482dfc41944579df2dc6 ("drivers: provide devm_platform_get_and_ioremap_resource()"). Provide design options for the adjustment of affected source code by the means of the semantic patch language (Coccinelle software). Signed-off-by: Markus Elfring <elfr...@users.sourceforge.net> --- ...vm_platform_get_and_ioremap_resource.cocci | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 scripts/coccinelle/api/use_devm_platform_get_and_ioremap_resource.cocci diff --git a/scripts/coccinelle/api/use_devm_platform_get_and_ioremap_resource.cocci b/scripts/coccinelle/api/use_devm_platform_get_and_ioremap_resource.cocci new file mode 100644 index 000000000000..8e67359f6b76 --- /dev/null +++ b/scripts/coccinelle/api/use_devm_platform_get_and_ioremap_resource.cocci @@ -0,0 +1,71 @@ +// SPDX-License-Identifier: GPL-2.0 +/// Simplify a function call combination by using a known wrapper function. +// +// Keywords: wrapper function conversion ioremap resources +// Confidence: High + +virtual context, patch, report, org + +@display depends on context@ +expression base, device1, device2, index, private, resource; +@@ +( +*resource = platform_get_resource(device1, IORESOURCE_MEM, index); + base = +* devm_ioremap_resource + (&device1->dev, resource); +| +*private->res = platform_get_resource(device1, IORESOURCE_MEM, index); + base = +* devm_ioremap_resource + (device2, private->res); +) + +@replacement depends on patch@ +expression base, device1, device2, index, private, resource; +@@ +( +-resource = platform_get_resource(device1, IORESOURCE_MEM, index); + base = +- devm_ioremap_resource ++ devm_platform_get_and_ioremap_resource + ( +- & + device1 +- ->dev + , +- resource ++ index, &resource + ); +| +-private->res = platform_get_resource(device1, IORESOURCE_MEM, index); + base = +- devm_ioremap_resource ++ devm_platform_get_and_ioremap_resource + (device2, +- private->res ++ index, &private->res + ); +) + +@or depends on org || report@ +expression base, device1, device2, index, private, resource; +position p; +@@ +( + resource = platform_get_resource(device1, IORESOURCE_MEM, index); + base = devm_ioremap_resource@p(&device1->dev, resource); +| + private->res = platform_get_resource(device1, IORESOURCE_MEM, index); + base = devm_ioremap_resource@p(device2, private->res); +) + +@script:python to_do depends on org@ +p << or.p; +@@ +coccilib.org.print_todo(p[0], "WARNING: opportunity for devm_platform_get_and_ioremap_resource()") + +@script:python reporting depends on report@ +p << or.p; +@@ +coccilib.report.print_report(p[0], "WARNING: opportunity for devm_platform_get_and_ioremap_resource()") -- 2.28.0 _______________________________________________ Cocci mailing list Cocci@systeme.lip6.fr https://systeme.lip6.fr/mailman/listinfo/cocci