Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756197AbbLAM1y (ORCPT ); Tue, 1 Dec 2015 07:27:54 -0500 Received: from down.free-electrons.com ([37.187.137.238]:40313 "EHLO mail.free-electrons.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1755029AbbLAM1u (ORCPT ); Tue, 1 Dec 2015 07:27:50 -0500 Date: Tue, 1 Dec 2015 13:27:45 +0100 From: Boris Brezillon To: Julia Lawall Cc: David Woodhouse , Brian Norris , linux-mtd@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Jonathan Corbet , linux-doc@vger.kernel.org, Hartley Sweeten , Ryan Mallon , Shawn Guo , Sascha Hauer , Imre Kaloz , Krzysztof Halasa , Tony Lindgren , linux-omap@vger.kernel.org, Alexander Clouter , Thomas Petazzoni , Gregory CLEMENT , Jason Cooper , Sebastian Hesselbarth , Andrew Lunn , Daniel Mack , Haojian Zhuang , Robert Jarzmik , Marek Vasut , Steven Miao , adi-buildroot-devel@lists.sourceforge.net, Mikael Starvik , Jesper Nilsson , linux-cris-kernel@axis.com, Josh Wu , Wan ZongShun , Ezequiel Garcia , Maxim Levitsky , Kukjin Kim , Krzysztof Kozlowski , linux-samsung-soc@vger.kernel.org, Maxime Ripard , Chen-Yu Tsai , linux-sunxi@googlegroups.com, Stefan Agner , Greg Kroah-Hartman , devel@driverdev.osuosl.org Subject: Re: [PATCH v2 11/25] coccinelle: nand: detect and correct drivers embedding an mtd_info object Message-ID: <20151201132745.2bc1e294@bbrezillon> In-Reply-To: References: <1448967802-25796-1-git-send-email-boris.brezillon@free-electrons.com> <1448967802-25796-12-git-send-email-boris.brezillon@free-electrons.com> X-Mailer: Claws Mail 3.11.1 (GTK+ 2.24.27; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2570 Lines: 101 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 -- 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/