virtual patch | |
virtual report | |
@depends on patch@ | |
expression base, dev, res; | |
@@ | |
-base = devm_request_and_ioremap(dev, res); | |
+base = devm_ioremap_resource(dev, res); | |
... | |
if ( | |
-base == NULL | |
+IS_ERR(base) | |
|| ...) { | |
<... | |
- return ...; | |
+ return PTR_ERR(base); | |
...> | |
} | |
@depends on patch@ | |
expression e, E, ret; | |
identifier l; | |
@@ | |
e = devm_ioremap_resource(...); | |
... | |
if (IS_ERR(e) || ...) { | |
... when any | |
- ret = E; | |
+ ret = PTR_ERR(e); | |
... | |
( | |
return ret; | |
| | |
goto l; | |
) | |
} | |
@depends on patch@ | |
expression e; | |
@@ | |
e = devm_ioremap_resource(...); | |
... | |
if (IS_ERR(e) || ...) { | |
... | |
- \(dev_dbg\|dev_err\|pr_debug\|pr_err\|DRM_ERROR\)(...); | |
... | |
} | |
@depends on patch@ | |
expression e; | |
identifier l; | |
@@ | |
e = devm_ioremap_resource(...); | |
... | |
if (IS_ERR(e) || ...) | |
-{ | |
( | |
return ...; | |
| | |
goto l; | |
) | |
-} | |
@r depends on report@ | |
expression e; | |
identifier l; | |
position p1; | |
@@ | |
*e = devm_request_and_ioremap@p1(...); | |
... | |
if (e == NULL || ...) { | |
... | |
( | |
return ...; | |
| | |
goto l; | |
) | |
} | |
@script:python depends on r@ | |
p1 << r.p1; | |
@@ | |
msg = "ERROR: deprecated devm_request_and_ioremap() API used on line %s" % (p1[0].line) | |
coccilib.report.print_report(p1[0], msg) |