>Author: Jiri Slaby <[EMAIL PROTECTED]> >Date: Tue Aug 16 14:35:42 2005 -0700 > >[WATCHDOG] removes pci_find_device from i6300esb.c > >This patch changes >pci_find_device to pci_get_device (encapsulated in for_each_pci_dev) in >i6300esb watchdog card with appropriate adding pci_dev_put. Generated in >2.6.13-rc5-mm1 kernel version. This is bad. One pci_dev_put was misused (there was one case without putting the device). Thanks to Naveen Gupta.
Generated in 2.6.13-rc5-mm1 kernel version. Signed-off-by: Jiri Slaby <[EMAIL PROTECTED]> i6300esb.c | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/char/watchdog/i6300esb.c b/drivers/char/watchdog/i6300esb.c --- 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)) { @@ -432,6 +431,7 @@ err_disable: pci_disable_device(esb_pci); } out: + pci_dev_put(esb_pci); return 0; } @@ -481,6 +481,7 @@ err_unmap: pci_release_region(esb_pci, 0); /* err_disable: */ pci_disable_device(esb_pci); + pci_dev_put(esb_pci); /* out: */ return ret; } @@ -497,6 +498,7 @@ static void __exit watchdog_cleanup (voi iounmap(BASEADDR); pci_release_region(esb_pci, 0); pci_disable_device(esb_pci); + pci_dev_put(esb_pci); } module_init(watchdog_init); - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/