1virtual patch 2virtual report 3 4@depends on patch@ 5expression base, dev, res; 6@@ 7 8-base = devm_request_and_ioremap(dev, res); 9+base = devm_ioremap_resource(dev, res); 10 ... 11 if ( 12-base == NULL 13+IS_ERR(base) 14 || ...) { 15<... 16- return ...; 17+ return PTR_ERR(base); 18...> 19 } 20 21@depends on patch@ 22expression e, E, ret; 23identifier l; 24@@ 25 26 e = devm_ioremap_resource(...); 27 ... 28 if (IS_ERR(e) || ...) { 29 ... when any 30- ret = E; 31+ ret = PTR_ERR(e); 32 ... 33( 34 return ret; 35| 36 goto l; 37) 38 } 39 40@depends on patch@ 41expression e; 42@@ 43 44 e = devm_ioremap_resource(...); 45 ... 46 if (IS_ERR(e) || ...) { 47 ... 48- \(dev_dbg\|dev_err\|pr_debug\|pr_err\|DRM_ERROR\)(...); 49 ... 50 } 51 52@depends on patch@ 53expression e; 54identifier l; 55@@ 56 57 e = devm_ioremap_resource(...); 58 ... 59 if (IS_ERR(e) || ...) 60-{ 61( 62 return ...; 63| 64 goto l; 65) 66-} 67 68@r depends on report@ 69expression e; 70identifier l; 71position p1; 72@@ 73 74*e = devm_request_and_ioremap@p1(...); 75 ... 76 if (e == NULL || ...) { 77 ... 78( 79 return ...; 80| 81 goto l; 82) 83 } 84 85@script:python depends on r@ 86p1 << r.p1; 87@@ 88 89msg = "ERROR: deprecated devm_request_and_ioremap() API used on line %s" % (p1[0].line) 90coccilib.report.print_report(p1[0], msg) 91