diff --git a/drivers/isdn/hysdn/hysdn_init.c b/drivers/isdn/hysdn/hysdn_init.c --- a/drivers/isdn/hysdn/hysdn_init.c +++ b/drivers/isdn/hysdn/hysdn_init.c @@ -78,13 +78,14 @@ search_cards(void) card_root = NULL; card_last = NULL; - while ((akt_pcidev = pci_find_device(PCI_VENDOR_ID_HYPERCOPE, PCI_DEVICE_ID_HYPERCOPE_PLX, - akt_pcidev)) != NULL) { + while ((akt_pcidev = pci_get_device(PCI_VENDOR_ID_HYPERCOPE, + PCI_DEVICE_ID_HYPERCOPE_PLX, akt_pcidev)) != NULL) { if (pci_enable_device(akt_pcidev)) continue; if (!(card = kmalloc(sizeof(hysdn_card), GFP_KERNEL))) { printk(KERN_ERR "HYSDN: unable to alloc device mem \n"); + pci_dev_put(akt_pcidev); return; } memset(card, 0, sizeof(hysdn_card));