diff --git a/drivers/char/stallion.c b/drivers/char/stallion.c --- a/drivers/char/stallion.c +++ b/drivers/char/stallion.c @@ -2726,7 +2726,7 @@ static inline int stl_findpcibrds(void) #endif for (i = 0; (i < stl_nrpcibrds); i++) - while ((dev = pci_find_device(stl_pcibrds[i].vendid, + while ((dev = pci_get_device(stl_pcibrds[i].vendid, stl_pcibrds[i].devid, dev))) { /* @@ -2737,8 +2737,10 @@ static inline int stl_findpcibrds(void) continue; rc = stl_initpcibrd(stl_pcibrds[i].brdtype, dev); - if (rc) + if (rc) { + pci_dev_put(dev); return(rc); + } } return(0);