On Sun, 13 Sep 2009, Atsushi Nemoto wrote:
> On Fri, 11 Sep 2009 18:21:00 +0200 (CEST), Julia Lawall <firstname.lastname@example.org> wrote:
> > From: Julia Lawall <email@example.com>
> > Error handling code following a kzalloc should free the allocated data.
> > Error handling code following an ioremap should iounmap the allocated data.
> > The semantic match that finds the first problem is as follows:
> > (http://www.emn.fr/x-info/coccinelle/)
> Thank you for finding this out.
> This patch add some correctness, but obviously incomplete: there are
> more error pathes without iounmap/kfree/etc. in this function.
The only other error path that I see is:
pdev = platform_device_alloc("leds-gpio", basenum);
But at that point the call gpiochip_add(&iocled->chip) has already
succeeded. From looking at this function, I have the impression that it
makes the iocled structure available from a global array, gpio_desc.
Since the function containing the above code doesn't return any error
code, perhaps the caller will not know whether this platform_device_alloc
error occurred or not. There would also be at least the problem of
getting the pointer out of the gpio_desc structure. I guess this could be
done with gpiochip_remove?
I can certainly make a new patch using the goto style, but let me know
what to do about the above issue.
> And I like goto-style cleanup, as Mark Brown said in reply for your
> sound/soc patch.
> Could you make a new patch?
> Atsushi Nemoto
> To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in
> the body of a message to firstname.lastname@example.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html