summaryrefslogtreecommitdiffstats
path: root/freebsd/sys/net80211/ieee80211_mesh.c
diff options
context:
space:
mode:
Diffstat (limited to 'freebsd/sys/net80211/ieee80211_mesh.c')
-rw-r--r--freebsd/sys/net80211/ieee80211_mesh.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/freebsd/sys/net80211/ieee80211_mesh.c b/freebsd/sys/net80211/ieee80211_mesh.c
index f747c214..5a83b630 100644
--- a/freebsd/sys/net80211/ieee80211_mesh.c
+++ b/freebsd/sys/net80211/ieee80211_mesh.c
@@ -1227,6 +1227,7 @@ mesh_forward(struct ieee80211vap *vap, struct mbuf *m,
M_WME_SETAC(mcopy, WME_AC_BE);
/* XXX do we know m_nextpkt is NULL? */
+ MPASS((mcopy->m_pkthdr.csum_flags & CSUM_SND_TAG) == 0);
mcopy->m_pkthdr.rcvif = (void *) ni;
/*
@@ -1657,12 +1658,7 @@ mesh_input(struct ieee80211_node *ni, struct mbuf *m,
* in the Mesh Control field and a 3 address qos frame
* is used.
*/
- if (IEEE80211_IS_DSTODS(wh))
- *(uint16_t *)qos = *(uint16_t *)
- ((struct ieee80211_qosframe_addr4 *)wh)->i_qos;
- else
- *(uint16_t *)qos = *(uint16_t *)
- ((struct ieee80211_qosframe *)wh)->i_qos;
+ *(uint16_t *)qos = *(uint16_t *)ieee80211_getqos(wh);
/*
* NB: The mesh STA sets the Mesh Control Present