aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/bwi/if_bwi_pci.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/bwi/if_bwi_pci.c')
-rw-r--r--sys/dev/bwi/if_bwi_pci.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/sys/dev/bwi/if_bwi_pci.c b/sys/dev/bwi/if_bwi_pci.c
index 1977b93a4acc..c2badc504a9b 100644
--- a/sys/dev/bwi/if_bwi_pci.c
+++ b/sys/dev/bwi/if_bwi_pci.c
@@ -161,12 +161,6 @@ bwi_pci_attach(device_t dev)
device_printf(dev, "could not map interrupt\n");
goto bad1;
}
- if (bus_setup_intr(dev, sc->sc_irq_res,
- INTR_TYPE_NET | INTR_MPSAFE,
- NULL, bwi_intr, sc, &sc->sc_irq_handle)) {
- device_printf(dev, "could not establish interrupt\n");
- goto bad2;
- }
/* Get more PCI information */
sc->sc_pci_did = pci_get_device(dev);
@@ -174,11 +168,17 @@ bwi_pci_attach(device_t dev)
sc->sc_pci_subvid = pci_get_subvendor(dev);
sc->sc_pci_subdid = pci_get_subdevice(dev);
- error = bwi_attach(sc);
- if (error == 0) /* success */
- return 0;
+ if ((error = bwi_attach(sc)) != 0)
+ goto bad2;
+
+ if (bus_setup_intr(dev, sc->sc_irq_res,
+ INTR_TYPE_NET | INTR_MPSAFE,
+ NULL, bwi_intr, sc, &sc->sc_irq_handle)) {
+ device_printf(dev, "could not establish interrupt\n");
+ goto bad2;
+ }
+ return (0);
- bus_teardown_intr(dev, sc->sc_irq_res, sc->sc_irq_handle);
bad2:
bus_release_resource(dev, SYS_RES_IRQ, 0, sc->sc_irq_res);
bad1: