summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/dev/pci/if_iwn.c18
-rw-r--r--sys/dev/pci/if_wpi.c18
2 files changed, 16 insertions, 20 deletions
diff --git a/sys/dev/pci/if_iwn.c b/sys/dev/pci/if_iwn.c
index befdf873342..2a4b52c882c 100644
--- a/sys/dev/pci/if_iwn.c
+++ b/sys/dev/pci/if_iwn.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_iwn.c,v 1.72 2009/10/28 18:42:47 damien Exp $ */
+/* $OpenBSD: if_iwn.c,v 1.73 2009/10/31 11:52:07 damien Exp $ */
/*-
* Copyright (c) 2007-2009 Damien Bergamini <damien.bergamini@free.fr>
@@ -667,18 +667,16 @@ iwn_detach(struct device *self, int flags)
{
struct iwn_softc *sc = (struct iwn_softc *)self;
struct ifnet *ifp = &sc->sc_ic.ic_if;
- int s, qid;
+ int qid;
- s = splnet();
timeout_del(&sc->calib_to);
/* Uninstall interrupt handler. */
if (sc->sc_ih != NULL)
pci_intr_disestablish(sc->sc_pct, sc->sc_ih);
- ieee80211_ifdetach(ifp);
- if_detach(ifp);
- splx(s);
+ if (sc->powerhook != NULL)
+ powerhook_disestablish(sc->powerhook);
/* Free DMA resources. */
iwn_free_rx_ring(sc, &sc->rxq);
@@ -690,16 +688,16 @@ iwn_detach(struct device *self, int flags)
iwn_free_ict(sc);
iwn_free_fwmem(sc);
+ bus_space_unmap(sc->sc_st, sc->sc_sh, sc->sc_sz);
+
#ifndef SMALL_KERNEL
/* Detach the thermal sensor. */
sensor_detach(&sc->sensordev, &sc->sensor);
sensordev_deinstall(&sc->sensordev);
#endif
- if (sc->powerhook != NULL)
- powerhook_disestablish(sc->powerhook);
-
- bus_space_unmap(sc->sc_st, sc->sc_sh, sc->sc_sz);
+ ieee80211_ifdetach(ifp);
+ if_detach(ifp);
return 0;
}
diff --git a/sys/dev/pci/if_wpi.c b/sys/dev/pci/if_wpi.c
index c2113136f25..86463d786e9 100644
--- a/sys/dev/pci/if_wpi.c
+++ b/sys/dev/pci/if_wpi.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_wpi.c,v 1.96 2009/10/26 18:38:32 damien Exp $ */
+/* $OpenBSD: if_wpi.c,v 1.97 2009/10/31 11:52:07 damien Exp $ */
/*-
* Copyright (c) 2006-2008
@@ -388,18 +388,16 @@ wpi_detach(struct device *self, int flags)
{
struct wpi_softc *sc = (struct wpi_softc *)self;
struct ifnet *ifp = &sc->sc_ic.ic_if;
- int s, qid;
+ int qid;
- s = splnet();
timeout_del(&sc->calib_to);
/* Uninstall interrupt handler. */
if (sc->sc_ih != NULL)
pci_intr_disestablish(sc->sc_pct, sc->sc_ih);
- ieee80211_ifdetach(ifp);
- if_detach(ifp);
- splx(s);
+ if (sc->powerhook != NULL)
+ powerhook_disestablish(sc->powerhook);
/* Free DMA resources. */
wpi_free_rx_ring(sc, &sc->rxq);
@@ -408,16 +406,16 @@ wpi_detach(struct device *self, int flags)
wpi_free_shared(sc);
wpi_free_fwmem(sc);
+ bus_space_unmap(sc->sc_st, sc->sc_sh, sc->sc_sz);
+
#ifndef SMALL_KERNEL
/* Detach the thermal sensor. */
sensor_detach(&sc->sensordev, &sc->sensor);
sensordev_deinstall(&sc->sensordev);
#endif
- if (sc->powerhook != NULL)
- powerhook_disestablish(sc->powerhook);
-
- bus_space_unmap(sc->sc_st, sc->sc_sh, sc->sc_sz);
+ ieee80211_ifdetach(ifp);
+ if_detach(ifp);
return 0;
}