summaryrefslogtreecommitdiffstats
path: root/sys/dev/ath
diff options
context:
space:
mode:
authorsam <sam@FreeBSD.org>2004-08-07 00:45:05 +0000
committersam <sam@FreeBSD.org>2004-08-07 00:45:05 +0000
commitc26d1cbd7eb872a73d680663ab2340f1997498dd (patch)
tree25a72c4887aa07dba93d332a6c9516132963a22b /sys/dev/ath
parente6ca9c76da62a41f4dc855eb503ed636803dfec6 (diff)
downloadFreeBSD-src-c26d1cbd7eb872a73d680663ab2340f1997498dd.zip
FreeBSD-src-c26d1cbd7eb872a73d680663ab2340f1997498dd.tar.gz
Pickup Giant in ath_rx_proc and when handling a beacon miss in order to
satisfy the assertion in if_start.
Diffstat (limited to 'sys/dev/ath')
-rw-r--r--sys/dev/ath/if_ath.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/dev/ath/if_ath.c b/sys/dev/ath/if_ath.c
index b8761e6..2c04c8e 100644
--- a/sys/dev/ath/if_ath.c
+++ b/sys/dev/ath/if_ath.c
@@ -532,7 +532,9 @@ ath_bmiss_proc(void *arg, int pending)
* machine will drop us into scanning after timing
* out waiting for a probe response.
*/
+ NET_LOCK_GIANT();
ieee80211_new_state(ic, IEEE80211_S_ASSOC, -1);
+ NET_UNLOCK_GIANT();
}
}
@@ -1662,6 +1664,8 @@ ath_rx_proc(void *arg, int npending)
u_int phyerr;
HAL_STATUS status;
+ NET_LOCK_GIANT(); /* XXX */
+
DPRINTF(ATH_DEBUG_RX_PROC, ("%s: pending %u\n", __func__, npending));
do {
bf = TAILQ_FIRST(&sc->sc_rxbuf);
@@ -1815,6 +1819,8 @@ ath_rx_proc(void *arg, int npending)
ath_hal_rxmonitor(ah); /* rx signal state monitoring */
ath_hal_rxena(ah); /* in case of RXEOL */
+
+ NET_UNLOCK_GIANT(); /* XXX */
#undef PA2DESC
}
OpenPOWER on IntegriCloud