Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

scripts/coccinelle/api: remove devm_request_and_ioremap.cocci

Use of this function is discouraged in favour of
devm_ioremap_resource(). Don't advertise it.

Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Acked-by: Julia Lawall <julia.lawall@lip6.fr>
Signed-off-by: Michal Marek <mmarek@suse.cz>

authored by

Wolfram Sang and committed by
Michal Marek
a6908763 f5a82137

-105
-105
scripts/coccinelle/api/devm_request_and_ioremap.cocci
··· 1 - /// Reimplement a call to devm_request_mem_region followed by a call to ioremap 2 - /// or ioremap_nocache by a call to devm_request_and_ioremap. 3 - /// Devm_request_and_ioremap was introduced in 4 - /// 72f8c0bfa0de64c68ee59f40eb9b2683bffffbb0. It makes the code much more 5 - /// concise. 6 - /// 7 - /// 8 - // Confidence: High 9 - // Copyright: (C) 2011 Julia Lawall, INRIA/LIP6. GPLv2. 10 - // Copyright: (C) 2011 Gilles Muller, INRIA/LiP6. GPLv2. 11 - // URL: http://coccinelle.lip6.fr/ 12 - // Comments: 13 - // Options: --no-includes --include-headers 14 - 15 - virtual patch 16 - virtual org 17 - virtual report 18 - virtual context 19 - 20 - @nm@ 21 - expression myname; 22 - identifier i; 23 - @@ 24 - 25 - struct platform_driver i = { .driver = { .name = myname } }; 26 - 27 - @depends on patch@ 28 - expression dev,res,size; 29 - @@ 30 - 31 - -if (!devm_request_mem_region(dev, res->start, size, 32 - - \(res->name\|dev_name(dev)\))) { 33 - - ... 34 - - return ...; 35 - -} 36 - ... when != res->start 37 - ( 38 - -devm_ioremap(dev,res->start,size) 39 - +devm_request_and_ioremap(dev,res) 40 - | 41 - -devm_ioremap_nocache(dev,res->start,size) 42 - +devm_request_and_ioremap(dev,res) 43 - ) 44 - ... when any 45 - when != res->start 46 - 47 - // this rule is separate from the previous one, because a single file can 48 - // have multiple values of myname 49 - @depends on patch@ 50 - expression dev,res,size; 51 - expression nm.myname; 52 - @@ 53 - 54 - -if (!devm_request_mem_region(dev, res->start, size,myname)) { 55 - - ... 56 - - return ...; 57 - -} 58 - ... when != res->start 59 - ( 60 - -devm_ioremap(dev,res->start,size) 61 - +devm_request_and_ioremap(dev,res) 62 - | 63 - -devm_ioremap_nocache(dev,res->start,size) 64 - +devm_request_and_ioremap(dev,res) 65 - ) 66 - ... when any 67 - when != res->start 68 - 69 - 70 - @pb depends on org || report || context@ 71 - expression dev,res,size; 72 - expression nm.myname; 73 - position p1,p2; 74 - @@ 75 - 76 - *if 77 - (!devm_request_mem_region@p1(dev, res->start, size, 78 - \(res->name\|dev_name(dev)\|myname\))) { 79 - ... 80 - return ...; 81 - } 82 - ... when != res->start 83 - ( 84 - *devm_ioremap@p2(dev,res->start,size) 85 - | 86 - *devm_ioremap_nocache@p2(dev,res->start,size) 87 - ) 88 - ... when any 89 - when != res->start 90 - 91 - @script:python depends on org@ 92 - p1 << pb.p1; 93 - p2 << pb.p2; 94 - @@ 95 - 96 - cocci.print_main("INFO: replace by devm_request_and_ioremap",p1) 97 - cocci.print_secs("",p2) 98 - 99 - @script:python depends on report@ 100 - p1 << pb.p1; 101 - p2 << pb.p2; 102 - @@ 103 - 104 - msg = "INFO: devm_request_mem_region followed by ioremap on line %s can be replaced by devm_request_and_ioremap" % (p2[0].line) 105 - coccilib.report.print_report(p1[0],msg)