Re: [PATCH -mm] removes pci_find_device from i6300esb.c

From: Andrew Morton
Date: Tue Aug 09 2005 - 01:36:15 EST


Jiri Slaby <jirislaby@xxxxxxxxx> wrote:
>
> --- a/drivers/char/watchdog/i6300esb.c
> +++ b/drivers/char/watchdog/i6300esb.c
> @@ -368,12 +368,11 @@ static unsigned char __init esb_getdevic
> * Find the PCI device
> */
>
> - while ((dev = pci_find_device(PCI_ANY_ID, PCI_ANY_ID, dev)) != NULL) {
> + for_each_pci_dev(dev)
> if (pci_match_id(esb_pci_tbl, dev)) {
> esb_pci = dev;
> break;
> }
> - }
>
> if (esb_pci) {
> if (pci_enable_device(esb_pci)) {
> @@ -430,6 +429,7 @@ err_release:
> pci_release_region(esb_pci, 0);
> err_disable:
> pci_disable_device(esb_pci);
> + pci_dev_put(esb_pci);

That doesn't look right. Each iteration of for_each_pci_dev() needs a
pci_dev_put(), not just the final one.
-
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/