summaryrefslogtreecommitdiff
path: root/sys/dev/ath/if_ath.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/ath/if_ath.c')
-rw-r--r--sys/dev/ath/if_ath.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/dev/ath/if_ath.c b/sys/dev/ath/if_ath.c
index f9fa4cdf4126..ba84f09a966a 100644
--- a/sys/dev/ath/if_ath.c
+++ b/sys/dev/ath/if_ath.c
@@ -1455,7 +1455,8 @@ ath_rx_proc(void *arg, int npending)
{
struct ath_softc *sc = arg;
struct ath_buf *bf;
- struct ifnet *ifp = &sc->sc_ic.ic_if;
+ struct ieee80211com *ic = &sc->sc_ic;
+ struct ifnet *ifp = &ic->ic_if;
struct ath_hal *ah = sc->sc_ah;
struct ath_desc *ds;
struct mbuf *m;
@@ -1512,11 +1513,13 @@ ath_rx_proc(void *arg, int npending)
wh = mtod(m, struct ieee80211_frame *);
if ((wh->i_fc[0] & IEEE80211_FC0_TYPE_MASK) ==
- IEEE80211_FC0_TYPE_CTL) {
+ IEEE80211_FC0_TYPE_CTL &&
+ ic->ic_opmode != IEEE80211_M_MONITOR) {
/*
* Ignore control frame received in promisc mode.
*/
DPRINTF(("ath_rx_proc: control frame\n"));
+ sc->sc_stats.ast_rx_ctl++;
goto rx_next;
}