> >>>> +@replacement depends on patch@ > >>>> +expression base, device1, device2, index, private, resource; > >>>> +@@ > >>>> +( > >>>> +-resource = platform_get_resource(device1, IORESOURCE_MEM, index); > >>>> + base = > >>>> +- devm_ioremap_resource > >>>> ++ devm_platform_get_and_ioremap_resource > >>>> + ( > >>>> +- & > >>>> + device1 > >>>> +- ->dev > >>>> + , > >>>> +- resource > >>>> ++ index, &resource > >>>> + ); > >>>> +| > >>>> +-private->res = platform_get_resource(device1, IORESOURCE_MEM, index); > >>>> + base = > >>>> +- devm_ioremap_resource > >>>> ++ devm_platform_get_and_ioremap_resource > >>>> + (device2, > >>> > >>> It is very suspicious that in one case you change the first argument of > >>> devm_platform_get_and_ioremap_resource and in one case you don't. > >> > >> I noticed a few special cases during my source code analysis approach. > > > > This is not a reasonable answer. Does the rule work correctly or not? > > If it doesn't work correctly, it needs to be removed. > > Both source code change patterns from these branches of a SmPL disjunction > work as I would expect it by the current Coccinelle software. > Would you like to clarify any remaining related open issues? In one case the first argument of devm_ioremap_resource has to be changed to produce the first argument of devm_platform_get_and_ioremap_resource and in the other case there is no such change. "work as I would expect" is not a proper explanation of why this is correct. Maybe you can point to some previous commits that have made the change in this way. julia