On 22/07/15 08:58, Thomas Gleixner wrote: > On Wed, 22 Jul 2015, Marc Zyngier wrote: >> >> Looks like my coccinelle foo is still lacking a bit... Oh well. > > Please post your semantic patch and don't forget to Cc Julia Lawall :) > Bah, found the problem. My semantic patch is extremely simple: @init@ struct irq_domain *ptr; position pos; @@ ( ptr@pos->of_node ) @ script:python @ p1 << init.pos; @@ for p in p1: print "%s:%s" % (p.file,p.line) as I'm just grepping through the tree (I don't feel confident enough to do the patching, and some cases are a bit more complicated). But I forgot to add arch/$ARCH/include/asm as an include search path for spatch. That had the side effect of spatch being unable to identify constructs like: arch/$ARCH/include/asm/foo.h: struct foo { struct irq_domain *bar; }; arch/$ARCH/.../foo.c: struct foo foo; if (foo->bar->of_node) { ... } Since spatch knows nothing about struct foo, it cannot identify bar as a struct irq_domain, hence missing this occurrence. Once I fixed the include path, I found an additional couple of victims. I really love this thing! :-) M. -- Jazz is not dead. It just smells funny... -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html