diff options
author | sam <sam@FreeBSD.org> | 2004-08-07 00:45:05 +0000 |
---|---|---|
committer | sam <sam@FreeBSD.org> | 2004-08-07 00:45:05 +0000 |
commit | c26d1cbd7eb872a73d680663ab2340f1997498dd (patch) | |
tree | 25a72c4887aa07dba93d332a6c9516132963a22b /sys/dev/ath | |
parent | e6ca9c76da62a41f4dc855eb503ed636803dfec6 (diff) | |
download | FreeBSD-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.c | 6 |
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 } |