91 lines
1.1 KiB
Plaintext
91 lines
1.1 KiB
Plaintext
|
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)
|