Patchwork [1/5] drivers/ata: Move a dereference below a NULL test

login
register
mail settings
Submitter Julia Lawall
Date July 11, 2009, 7:49 a.m.
Message ID <Pine.LNX.4.64.0907110949280.29592@ask.diku.dk>
Download mbox | patch
Permalink /patch/29697/
State Not Applicable
Delegated to: David Miller
Headers show

Comments

Julia Lawall - July 11, 2009, 7:49 a.m.
From: Julia Lawall <julia@diku.dk>

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/)

// <smpl>
@@
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;
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>

---
 drivers/ata/pata_at91.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Jeff Garzik - July 15, 2009, 2:43 a.m.
Julia Lawall wrote:
> From: Julia Lawall <julia@diku.dk>
> 
> 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/)
> 
> // <smpl>
> @@
> 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;
> // </smpl>
> 
> Signed-off-by: Julia Lawall <julia@diku.dk>
> 
> ---
>  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


--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

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;
 
 	ata_host_detach(host);