stash the node pointer in the mbuf before doing ff aggregration so this
is done in only one place
This commit is contained in:
parent
cebcd508aa
commit
10e49ed157
@ -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);
|
||||
|
@ -725,8 +725,6 @@ ieee80211_ff_check(struct ieee80211_node *ni, struct mbuf *m)
|
||||
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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user