diff --git a/drivers/net/s2io.c b/drivers/net/s2io.c
index 542059107538024f4802726b2d6cd8cd4a6fb513..d579a44aab5cee14400cc4f4a7e842aff3038b72 100644
--- a/drivers/net/s2io.c
+++ b/drivers/net/s2io.c
@@ -855,9 +855,10 @@ static int s2io_verify_pci_mode(nic_t *nic)
 static int s2io_on_nec_bridge(struct pci_dev *s2io_pdev)
 {
 	struct pci_dev *tdev = NULL;
-	while ((tdev = pci_find_device(PCI_ANY_ID, PCI_ANY_ID, tdev)) != NULL) {
-		if ((tdev->vendor == NEC_VENID) && (tdev->device == NEC_DEVID)){
+	while ((tdev = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, tdev)) != NULL) {
+		if (tdev->vendor == NEC_VENID && tdev->device == NEC_DEVID) {
 			if (tdev->bus == s2io_pdev->bus->parent)
+				pci_dev_put(tdev);
 				return 1;
 		}
 	}