> -----Original Message----- > From: Ryan Mallon > Sent: Thursday, April 19, 2012 9:16 AM > To: Julia Lawall > Cc: Florian Tobias Schandinat; kernel-janitors@xxxxxxxxxxxxxxx; linux-fbdev@xxxxxxxxxxxxxxx; linux- > kernel@xxxxxxxxxxxxxxx > Subject: Re: [PATCH] drivers/video/ep93xx-fb.c: clean up error-handling code > > On 19/04/12 05:37, Julia Lawall wrote: > > > From: Julia Lawall <Julia.Lawall@xxxxxxx> > > > > There were two problems in this code: failure of the setup function should > > free locally allocated resources like other nearby failures, and the test > > if (&info->cmap) can never be false. To generally clean things up, this > > patch reorders the error handling code at the failed label and adds labels > > so that the conditionals are not necessary. > > > > Signed-off-by: Julia Lawall <Julia.Lawall@xxxxxxx> > > Reviewed-by: Ryan Mallon <rmallon@xxxxxxxxx> > > Oddly, scripts/get_maintainer.pl on this file doesn't return me, even > though, according to git blame, I am the author of 90% of the commits. > Should I have an entry in the MAINTAINERS file, or is > scripts/get_maintainer.pl not working properly? There are optional differences in using scripts/get_maintainer.pl. If you use './' ahead of file path, you will see your name. Without './' ahead of 'drivers/video/ep93xx-fb.c': ./scripts/get_maintainer.pl --file drivers/video/ep93xx-fb.c Florian Tobias Schandinat <FlorianSchandinat@xxxxxx> (maintainer:FRAMEBUFFER LAYER) linux-fbdev@xxxxxxxxxxxxxxx (open list:FRAMEBUFFER LAYER) linux-kernel@xxxxxxxxxxxxxxx (open list) With './' ahead of 'drivers/video/ep93xx-fb.c': ./scripts/get_maintainer.pl --file ./drivers/video/ep93xx-fb.c Ryan Mallon <rmallon@xxxxxxxxx> (commit_signer:2/3=67%) Paul Gortmaker <paul.gortmaker@xxxxxxxxxxxxx> (commit_signer:1/3=33%) H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx> (commit_signer:1/3=33%) Jesper Juhl <jj@xxxxxxxxxxxxx> (commit_signer:1/3=33%) Jiri Kosina <jkosina@xxxxxxx> (commit_signer:1/3=33%) linux-kernel@xxxxxxxxxxxxxxx (open list) Best regards, Jingoo Han > > ~Ryan > > > --- > > Not tested. > > > > drivers/video/ep93xx-fb.c | 32 +++++++++++++++++--------------- > > 1 file changed, 17 insertions(+), 15 deletions(-) > > > > diff --git a/drivers/video/ep93xx-fb.c b/drivers/video/ep93xx-fb.c > > index f8babbe..345d962 100644 > > --- a/drivers/video/ep93xx-fb.c > > +++ b/drivers/video/ep93xx-fb.c > > @@ -507,16 +507,16 @@ static int __devinit ep93xxfb_probe(struct platform_device *pdev) > > > > err = fb_alloc_cmap(&info->cmap, 256, 0); > > if (err) > > - goto failed; > > + goto failed_cmap; > > > > err = ep93xxfb_alloc_videomem(info); > > if (err) > > - goto failed; > > + goto failed_videomem; > > > > res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > > if (!res) { > > err = -ENXIO; > > - goto failed; > > + goto failed_resource; > > } > > > > /* > > @@ -532,7 +532,7 @@ static int __devinit ep93xxfb_probe(struct platform_device *pdev) > > fbi->mmio_base = ioremap(res->start, resource_size(res)); > > if (!fbi->mmio_base) { > > err = -ENXIO; > > - goto failed; > > + goto failed_resource; > > } > > > > strcpy(info->fix.id, pdev->name); > > @@ -553,24 +553,24 @@ static int __devinit ep93xxfb_probe(struct platform_device *pdev) > > if (err == 0) { > > dev_err(info->dev, "No suitable video mode found\n"); > > err = -EINVAL; > > - goto failed; > > + goto failed_mode; > > } > > > > if (mach_info->setup) { > > err = mach_info->setup(pdev); > > if (err) > > - return err; > > + goto failed_mode; > > } > > > > err = ep93xxfb_check_var(&info->var, info); > > if (err) > > - goto failed; > > + goto failed_check; > > > > fbi->clk = clk_get(info->dev, NULL); > > if (IS_ERR(fbi->clk)) { > > err = PTR_ERR(fbi->clk); > > fbi->clk = NULL; > > - goto failed; > > + goto failed_check; > > } > > > > ep93xxfb_set_par(info); > > @@ -585,15 +585,17 @@ static int __devinit ep93xxfb_probe(struct platform_device *pdev) > > return 0; > > > > failed: > > - if (fbi->clk) > > - clk_put(fbi->clk); > > - if (fbi->mmio_base) > > - iounmap(fbi->mmio_base); > > - ep93xxfb_dealloc_videomem(info); > > - if (&info->cmap) > > - fb_dealloc_cmap(&info->cmap); > > + clk_put(fbi->clk); > > +failed_check: > > if (fbi->mach_info->teardown) > > fbi->mach_info->teardown(pdev); > > +failed_mode: > > + iounmap(fbi->mmio_base); > > +failed_resource: > > + ep93xxfb_dealloc_videomem(info); > > +failed_videomem: > > + fb_dealloc_cmap(&info->cmap); > > +failed_cmap: > > kfree(info); > > platform_set_drvdata(pdev, NULL); > > > > > > -- > > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > > the body of a message to majordomo@xxxxxxxxxxxxxxx > > More majordomo info at http://vger.kernel.org/majordomo-info.html > > Please read the FAQ at http://www.tux.org/lkml/ > > > -- > To unsubscribe from this list: send the line "unsubscribe linux-fbdev" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html