summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorMarcus Glocker <mglocker@cvs.openbsd.org>2007-04-11 19:49:12 +0000
committerMarcus Glocker <mglocker@cvs.openbsd.org>2007-04-11 19:49:12 +0000
commit48bc1683a6199c3b4b3431568e7eca711372225a (patch)
tree84e3aa8bb0a96ac7ce8a216bda7e5673e2c4477e /sys
parent7924b5b21bdc71d47b6162b7b1145eb2d98a1ae3 (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.c15
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.
*/