svn commit: r191550 - head/sys/net80211
Sam Leffler
sam at FreeBSD.org
Sun Apr 26 22:45:24 UTC 2009
Author: sam
Date: Sun Apr 26 22:45:21 2009
New Revision: 191550
URL: http://svn.freebsd.org/changeset/base/191550
Log:
stash the node pointer in the mbuf before doing ff aggregration so this
is done in only one place
Modified:
head/sys/net80211/ieee80211_output.c
head/sys/net80211/ieee80211_superg.c
Modified: head/sys/net80211/ieee80211_output.c
==============================================================================
--- head/sys/net80211/ieee80211_output.c Sun Apr 26 22:44:23 2009 (r191549)
+++ head/sys/net80211/ieee80211_output.c Sun Apr 26 22:45:21 2009 (r191550)
@@ -241,6 +241,13 @@ ieee80211_start(struct ifnet *ifp)
ieee80211_free_node(ni);
continue;
}
+ /*
+ * Stash the node pointer. Note that we do this after
+ * any call to ieee80211_dwds_mcast because that code
+ * uses any existing value for rcvif to identify the
+ * interface it (might have been) received on.
+ */
+ m->m_pkthdr.rcvif = (void *)ni;
BPF_MTAP(ifp, m); /* 802.3 tx */
@@ -265,14 +272,6 @@ ieee80211_start(struct ifnet *ifp)
}
}
- /*
- * Stash the node pointer and hand the frame off to
- * the underlying device. Note that we do this after
- * any call to ieee80211_dwds_mcast because that code
- * uses any existing value for rcvif.
- */
- m->m_pkthdr.rcvif = (void *)ni;
-
/* XXX fragmented frames not handled */
if (bpf_peers_present(vap->iv_rawbpf))
bpf_mtap(vap->iv_rawbpf, m);
Modified: head/sys/net80211/ieee80211_superg.c
==============================================================================
--- head/sys/net80211/ieee80211_superg.c Sun Apr 26 22:44:23 2009 (r191549)
+++ head/sys/net80211/ieee80211_superg.c Sun Apr 26 22:45:21 2009 (r191550)
@@ -725,8 +725,6 @@ ieee80211_ff_check(struct ieee80211_node
mstaged->m_nextpkt = m;
mstaged->m_flags |= M_FF; /* NB: mark for encap work */
} else {
- m->m_pkthdr.rcvif = (void *)ni; /* NB: hold node reference */
-
KASSERT(tap->txa_private == NULL,
("txa_private %p", tap->txa_private));
tap->txa_private = m;
More information about the svn-src-all
mailing list