Subject: [PATCH] gt96100: stop using pci_find_device()

From: Alexey Dobriyan <[email-masked]>
Date: Wed, 14 Sep 2005 22:51:37 +0400

From: Scott Feldman <[email-masked]>

Replace pci_find_device with pci_get_device/pci_dev_put to plug race
with pci_find_device.

Signed-off-by: Scott Feldman <[email-masked]>
Signed-off-by: Maximilian Attems <[email-masked]>
Signed-off-by: Domen Puncer <[email-masked]>
Signed-off-by: Alexey Dobriyan <[email-masked]>
---

 drivers/net/gt96100eth.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

--- a/drivers/net/gt96100eth.c
+++ b/drivers/net/gt96100eth.c
@@ -615,9 +615,9 @@ static int gt96100_init_module(void)
 	/*
 	 * Stupid probe because this really isn't a PCI device
 	 */
-	if (!(pci = pci_find_device(PCI_VENDOR_ID_MARVELL,
+	if (!(pci = pci_get_device(PCI_VENDOR_ID_MARVELL,
 	                            PCI_DEVICE_ID_MARVELL_GT96100, NULL)) &&
-	    !(pci = pci_find_device(PCI_VENDOR_ID_MARVELL,
+	    !(pci = pci_get_device(PCI_VENDOR_ID_MARVELL,
 		                    PCI_DEVICE_ID_MARVELL_GT96100A, NULL))) {
 		printk(KERN_ERR __FILE__ ": GT96100 not found!\n");
 		return -ENODEV;
@@ -627,12 +627,14 @@ static int gt96100_init_module(void)
 	if (cpuConfig & (1<<12)) {
 		printk(KERN_ERR __FILE__
 		       ": must be in Big Endian mode!\n");
+		pci_dev_put(pci);
 		return -ENODEV;
 	}
 
 	for (i=0; i < NUM_INTERFACES; i++)
 		retval |= gt96100_probe1(pci, i);
 
+	pci_dev_put(pci);
 	return retval;
 }

---

From: Jeff Garzik <[email-masked]>
Date: Wed, 14 Sep 2005 15:00:58 -0400

>  		       ": must be in Big Endian mode!\n");

NAK -- convert it to use standard PCI driver API.

	Jeff

---

From: Ralf Baechle <[email-masked]>
Date: Wed, 14 Sep 2005 20:40:38 +0100

> Replace pci_find_device with pci_get_device/pci_dev_put to plug race

The system is a little odd; the race condition probably doens't exist on
this particular chipset.

  Ralf