[PATCH] gt96100: stop using pci_find_device() From: Scott Feldman Replace pci_find_device with pci_get_device/pci_dev_put to plug race with pci_find_device. Signed-off-by: Scott Feldman Signed-off-by: Maximilian Attems Signed-off-by: Domen Puncer Signed-off-by: Alexey Dobriyan Index: linux-kj/drivers/net/gt96100eth.c =================================================================== --- linux-kj.orig/drivers/net/gt96100eth.c +++ linux-kj/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; }