Prev: [BISECTED] Today's Linus.git hangs during boot: can't find the floppy controller
Next: [PATCH] sh: remove RELOC_HIDE on exception handlers and syscall routines
From: Jiri Slaby on 8 Aug 2010 16:30 On 08/06/2010 09:49 PM, Kulikov Vasiliy wrote: > --- a/drivers/char/mxser.c > +++ b/drivers/char/mxser.c > @@ -2564,8 +2564,11 @@ static int __devinit mxser_probe(struct pci_dev *pdev, > /* vector */ > ioaddress = pci_resource_start(pdev, 3); > retval = pci_request_region(pdev, 3, "mxser(vector)"); > - if (retval) > - goto err_relio; > + if (retval) { > + pci_release_region(pdev, 2); > + brd->info = NULL; > + goto err; > + } > brd->vector = ioaddress; > > /* irq */ > @@ -2616,10 +2619,11 @@ static int __devinit mxser_probe(struct pci_dev *pdev, > pci_set_drvdata(pdev, brd); > > return 0; > -err_relio: > - pci_release_region(pdev, 2); > err_null: > brd->info = NULL; > + pci_release_region(pdev, 2); > + pci_release_region(pdev, 3); > + pci_disable_device(pdev); Why did you reorder this so that you cannot jump here from the fail path above? thanks, -- js -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Jiri Slaby on 9 Aug 2010 16:20
On 08/09/2010 09:49 PM, Kulikov Vasiliy wrote: > --- a/drivers/char/mxser.c > +++ b/drivers/char/mxser.c > @@ -2564,8 +2564,11 @@ static int __devinit mxser_probe(struct pci_dev *pdev, > /* vector */ > ioaddress = pci_resource_start(pdev, 3); > retval = pci_request_region(pdev, 3, "mxser(vector)"); > - if (retval) > - goto err_relio; > + if (retval) { > + pci_release_region(pdev, 2); > + brd->info = NULL; > + goto err_release; > + } Hi, I'm still not happy with this patch. First, it omits mxser_remove, where pci_disable_device is not called too. Second, the fail-paths tail should be reorganized so that we can jump there appropriately. I'll reply with my version of the patch, if you don't mind. thanks, -- js -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ |