diff options
author | Marcus Glocker <mglocker@cvs.openbsd.org> | 2007-04-11 19:49:12 +0000 |
---|---|---|
committer | Marcus Glocker <mglocker@cvs.openbsd.org> | 2007-04-11 19:49:12 +0000 |
commit | 48bc1683a6199c3b4b3431568e7eca711372225a (patch) | |
tree | 84e3aa8bb0a96ac7ce8a216bda7e5673e2c4477e /sys | |
parent | 7924b5b21bdc71d47b6162b7b1145eb2d98a1ae3 (diff) |
As probe response mgmt frames are already handled by the firmware, ignore
the ones which come from the 802.11 stack. Seen in the DragonFly driver.
ok claudio@
Diffstat (limited to 'sys')
-rw-r--r-- | sys/dev/ic/acx.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/sys/dev/ic/acx.c b/sys/dev/ic/acx.c index 1119066a852..b51d2232278 100644 --- a/sys/dev/ic/acx.c +++ b/sys/dev/ic/acx.c @@ -1,4 +1,4 @@ -/* $OpenBSD: acx.c,v 1.71 2007/04/03 18:57:34 claudio Exp $ */ +/* $OpenBSD: acx.c,v 1.72 2007/04/11 19:49:11 mglocker Exp $ */ /* * Copyright (c) 2006 Jonathan Gray <jsg@openbsd.org> @@ -878,6 +878,19 @@ acx_start(struct ifnet *ifp) m->m_pkthdr.rcvif = NULL; /* + * probe response mgmt frames are handled by the + * firmware already. So, don't send them twice. + */ + wh = mtod(m, struct ieee80211_frame *); + if ((wh->i_fc[0] & IEEE80211_FC0_SUBTYPE_MASK) == + IEEE80211_FC0_SUBTYPE_PROBE_RESP) { + if (ni != NULL) + ieee80211_release_node(ic, ni); + m_freem(m); + continue; + } + + /* * mgmt frames are sent at the lowest available * bit-rate. */ |