From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Brezillon Subject: Re: [PATCH v2 11/25] coccinelle: nand: detect and correct drivers embedding an mtd_info object Date: Tue, 1 Dec 2015 13:27:45 +0100 Message-ID: <20151201132745.2bc1e294@bbrezillon> References: <1448967802-25796-1-git-send-email-boris.brezillon@free-electrons.com> <1448967802-25796-12-git-send-email-boris.brezillon@free-electrons.com> Reply-To: boris.brezillon-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Return-path: In-Reply-To: List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , To: Julia Lawall Cc: David Woodhouse , Brian Norris , linux-mtd-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Jonathan Corbet , linux-doc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Hartley Sweeten , Ryan Mallon , Shawn Guo , Sascha Hauer , Imre Kaloz , Krzysztof Halasa , Tony Lindgren , linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Alexander Clouter , Thomas Petazzoni , Gregory CLEMENT , Jason Cooper , Sebastian Hesselbarth , Andrew Lunn , Daniel Mack , Haojian Zhuang , Robert List-Id: linux-omap@vger.kernel.org Hi, On Tue, 1 Dec 2015 12:17:44 +0100 (CET) Julia Lawall wrote: > > > On Tue, 1 Dec 2015, Boris Brezillon wrote: > > > Add nand-priv-no-mtd.cocci to detect and correct NAND controller drivers > > directly embedding an mtd_info struct in their private struct. > > > > Signed-off-by: Boris Brezillon > > Cc: Julia Lawall > > --- > > Hi Julia, > > > > Not sure this is the correct way to detect and fix offending drivers, > > but I get some warnings when launching coccicheck in org or report mode: > > > > "warning: fix2: inherited metavariable __chipfield not used in the -, +, > > or context code" > > > > Note that I don't get those warnings when running in patch mode. > > > > Any idea (feel free to propose a better solution to detect and fix those > > offending drivers)? > > Hi, > > Is this code generated with sgen? If so, could you send me the original > semantic patch? Nope, it's been hand written, which might explain the warnings :-/. Didn't know about sgen, I thought those scripts were all hand written. > > Another thing that is immediately apparent is that you have <... ...> on > the outside of one of the rules. This should never be needed. > > The warning suggests that your org and report versions are not doing as > much as the patch version. If you have used sgen to generate the semantic > patch then that would be strange. If you have hand written the whole > thing, then maybe you could simplify it to just do the patch version, and > then I can check it and run sgen on it to make a complete version. Sure, here it is: --->8--- virtual patch @fix1@ identifier __chipfield, __mtdfield; type __type; @@ ( __type { ... struct nand_chip __chipfield; ... - struct mtd_info __mtdfield; ... }; | __type { ... - struct mtd_info __mtdfield; ... struct nand_chip __chipfield; ... }; ) @fix2 depends on fix1@ identifier fix1.__chipfield, fix1.__mtdfield; identifier __subfield; type fix1.__type; __type *__priv; @@ ( - __priv->__mtdfield.__subfield + nand_to_mtd(&__priv->__chipfield)->__subfield | - &(__priv->__mtdfield) + nand_to_mtd(&__priv->__chipfield) ) --->8--- Thanks, Boris -- Boris Brezillon, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com