This patch replaces obsolete 'pci_find_device' with 'pci_get_device' to prevent the device from being stolen under us in Watchdog timer driver for intel 6300ESB chipset.
Signed-off-by: Naveen Gupta <[EMAIL PROTECTED]> Index: linux-2.6.12/drivers/char/watchdog/i6300esb.c =================================================================== --- linux-2.6.12.orig/drivers/char/watchdog/i6300esb.c 2005-08-15 11:28:07.000000000 -0700 +++ linux-2.6.12/drivers/char/watchdog/i6300esb.c 2005-08-15 11:36:54.000000000 -0700 @@ -362,23 +362,24 @@ { u8 val1; unsigned short val2; - + struct pci_device_id *ids = esb_pci_tbl; struct pci_dev *dev = NULL; /* * Find the PCI device */ - while ((dev = pci_find_device(PCI_ANY_ID, PCI_ANY_ID, dev)) != NULL) { - if (pci_match_id(esb_pci_tbl, dev)) { - esb_pci = dev; - break; - } - } + while (ids->vendor && ids->device) { + if ((dev = pci_get_device(ids->vendor, ids->device, dev)) != NULL) { + esb_pci = dev; + break; + } + ids++; + } if (esb_pci) { if (pci_enable_device(esb_pci)) { printk (KERN_ERR PFX "failed to enable device\n"); - goto out; + goto err_devput; } if (pci_request_region(esb_pci, 0, ESB_MODULE_NAME)) { @@ -430,8 +431,9 @@ pci_release_region(esb_pci, 0); err_disable: pci_disable_device(esb_pci); +err_devput: + pci_dev_put(esb_pci); } -out: return 0; } @@ -481,7 +483,8 @@ pci_release_region(esb_pci, 0); /* err_disable: */ pci_disable_device(esb_pci); -/* out: */ +/* err_devput: */ + pci_dev_put(esb_pci); return ret; } @@ -497,6 +500,7 @@ 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/