| 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) |