diff --git a/drivers/staging/dgap/dgap.c b/drivers/staging/dgap/dgap.c index f597432ede8c1fc6202bceeb70e1d25854f536c9..f2ad7ae8036e8e1700d08cd745359c4e8ca82b51 100644 --- a/drivers/staging/dgap/dgap.c +++ b/drivers/staging/dgap/dgap.c @@ -575,19 +575,16 @@ static int dgap_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) if (dgap_NumBoards >= MAXBOARDS) return -EPERM; - /* wake up and enable device */ rc = pci_enable_device(pdev); + if (rc) + return -EIO; - if (rc < 0) { - rc = -EIO; - } else { - rc = dgap_probe1(pdev, ent->driver_data); - if (rc == 0) { - dgap_NumBoards++; - rc = dgap_firmware_load(pdev, ent->driver_data); - } - } - return rc; + rc = dgap_probe1(pdev, ent->driver_data); + if (rc) + return rc; + + dgap_NumBoards++; + return dgap_firmware_load(pdev, ent->driver_data); } static int dgap_probe1(struct pci_dev *pdev, int card_type)