Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756338AbbGVMnl (ORCPT ); Wed, 22 Jul 2015 08:43:41 -0400 Received: from foss.arm.com ([217.140.101.70]:35660 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752413AbbGVMni (ORCPT ); Wed, 22 Jul 2015 08:43:38 -0400 Message-ID: <55AF8FF6.3080901@arm.com> Date: Wed, 22 Jul 2015 13:43:34 +0100 From: Marc Zyngier Organization: ARM Ltd User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Icedove/31.7.0 MIME-Version: 1.0 To: Thomas Gleixner CC: "hanjun.guo@linaro.org" , Jiang Liu , Jason Cooper , "linux-acpi@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , "linux-kernel@vger.kernel.org" , Lorenzo Pieralisi , Tomasz Nowicki , "Rafael J. Wysocki" , "suravee.suthikulpanit@amd.com" Subject: Re: [PATCH 1/5] genirq: irqdomain: Use an accessor for the of_node field References: <1437473280-11431-1-git-send-email-marc.zyngier@arm.com> <1437473280-11431-2-git-send-email-marc.zyngier@arm.com> <55AF47D7.8010304@linaro.org> <55AF4BBA.5030209@arm.com> In-Reply-To: Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1423 Lines: 59 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-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/