Messages in this thread Patch in this message | | | Date | Sat, 21 Nov 2009 14:21:12 -0700 | Subject | Re: [PATCH 7/8] drivers/dma: introduce missing kfree | From | Dan Williams <> |
| |
On Sat, Nov 21, 2009 at 4:52 AM, Julia Lawall <julia@diku.dk> wrote: > From: Julia Lawall <julia@diku.dk> > > Error handling code following a kzalloc should free the allocated data. >
Yes, but there is another buglet here:
> /* get platform data */ > if (!pdev->dev.platform_data) > - goto shdev_err; > + goto platform_err;
"err" is still zero at this point so the probe does not fail.
How about the following instead?
diff --git a/drivers/dma/shdma.c b/drivers/dma/shdma.c index b3b065c..034ecf0 100644 --- a/drivers/dma/shdma.c +++ b/drivers/dma/shdma.c @@ -640,17 +640,16 @@ static int __init sh_dmae_probe(struct platform_device *pdev) #endif struct sh_dmae_device *shdev;
+ /* get platform data */ + if (!pdev->dev.platform_data) + return -ENODEV; + shdev = kzalloc(sizeof(struct sh_dmae_device), GFP_KERNEL); if (!shdev) { dev_err(&pdev->dev, "No enough memory\n"); - err = -ENOMEM; - goto shdev_err; + return -ENOMEM; }
- /* get platform data */ - if (!pdev->dev.platform_data) - goto shdev_err; - /* platform data */ memcpy(&shdev->pdata, pdev->dev.platform_data, sizeof(struct sh_dmae_pdata)); @@ -722,7 +721,6 @@ eirq_err: rst_err: kfree(shdev);
-shdev_err: return err; } -- 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/
| |