From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751821AbZGOCpo (ORCPT ); Tue, 14 Jul 2009 22:45:44 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751677AbZGOCpn (ORCPT ); Tue, 14 Jul 2009 22:45:43 -0400 Received: from srv5.dvmed.net ([207.36.208.214]:46584 "EHLO mail.dvmed.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751272AbZGOCpm (ORCPT ); Tue, 14 Jul 2009 22:45:42 -0400 Message-ID: <4A5D426E.90308@pobox.com> Date: Tue, 14 Jul 2009 22:43:58 -0400 From: Jeff Garzik User-Agent: Thunderbird 2.0.0.21 (X11/20090320) MIME-Version: 1.0 To: Julia Lawall CC: linux-ide@vger.kernel.org, linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org Subject: Re: [PATCH 1/5] drivers/ata: Move a dereference below a NULL test References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -4.4 (----) X-Spam-Report: SpamAssassin version 3.2.5 on srv5.dvmed.net summary: Content analysis details: (-4.4 points, 5.0 required) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Julia Lawall wrote: > From: Julia Lawall > > If the NULL test is necessary, then the dereference should be moved below > the NULL test. > > The semantic patch that makes this change is as follows: > (http://www.emn.fr/x-info/coccinelle/) > > // > @@ > type T; > expression E; > identifier i,fld; > statement S; > @@ > > - T i = E->fld; > + T i; > ... when != E > when != i > if (E == NULL) S > + i = E->fld; > // > > Signed-off-by: Julia Lawall > > --- > drivers/ata/pata_at91.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff -u -p a/drivers/ata/pata_at91.c b/drivers/ata/pata_at91.c > --- a/drivers/ata/pata_at91.c > +++ b/drivers/ata/pata_at91.c > @@ -312,11 +312,12 @@ err_ide_ioremap: > static int __devexit pata_at91_remove(struct platform_device *pdev) > { > struct ata_host *host = dev_get_drvdata(&pdev->dev); > - struct at91_ide_info *info = host->private_data; > + struct at91_ide_info *info; > struct device *dev = &pdev->dev; > > if (!host) > return 0; > + info = host->private_data; > applied