PERFORCE change 119878 for review
Sepherosa Ziehau
sephe at FreeBSD.org
Tue May 15 11:33:15 UTC 2007
http://perforce.freebsd.org/chv.cgi?CH=119878
Change 119878 by sephe at sephe_zealot:sam_wifi on 2007/05/15 11:32:57
- Stop using M_HASFCS in 802.11 drivers.
- Stop processing M_HASFCS in 802.11 generic layer.
These save us one mbuf flag.
Discussed with: sam
Approved by: sam
Affected files ...
.. //depot/projects/wifi/sys/dev/awi/awi.c#16 edit
.. //depot/projects/wifi/sys/dev/usb/if_ural.c#25 edit
.. //depot/projects/wifi/sys/net80211/ieee80211_input.c#104 edit
Differences ...
==== //depot/projects/wifi/sys/dev/awi/awi.c#16 (text+ko) ====
@@ -1341,7 +1341,6 @@
m->m_pkthdr.rcvif = ifp;
m->m_pkthdr.len = len;
m->m_len = MHLEN;
- m->m_flags |= M_HASFCS;
} else {
MGET(m, M_DONTWAIT, MT_DATA);
if (m == NULL) {
@@ -1371,6 +1370,10 @@
*mp = m;
mp = &m->m_next;
}
+ if (top != NULL) {
+ /* Strip trailing 802.11 MAC FCS. */
+ m_adj(top, -IEEE80211_CRC_LEN);
+ }
return top;
}
==== //depot/projects/wifi/sys/dev/usb/if_ural.c#25 (text+ko) ====
@@ -939,7 +939,6 @@
/* finalize mbuf */
m->m_pkthdr.rcvif = ifp;
m->m_pkthdr.len = m->m_len = (le32toh(desc->flags) >> 16) & 0xfff;
- m->m_flags |= M_HASFCS; /* h/w leaves FCS */
if (bpf_peers_present(sc->sc_drvbpf)) {
struct ural_rx_radiotap_header *tap = &sc->sc_rxtap;
@@ -954,6 +953,9 @@
bpf_mtap2(sc->sc_drvbpf, tap, sc->sc_rxtap_len, m);
}
+ /* Strip trailing 802.11 MAC FCS. */
+ m_adj(m, -IEEE80211_CRC_LEN);
+
wh = mtod(m, struct ieee80211_frame *);
ni = ieee80211_find_rxnode(ic, (struct ieee80211_frame_min *)wh);
==== //depot/projects/wifi/sys/net80211/ieee80211_input.c#104 (text+ko) ====
@@ -133,11 +133,6 @@
KASSERT(ni != NULL, ("null node"));
ni->ni_inact = ni->ni_inact_reload;
- /* trim CRC here so WEP can find its own CRC at the end of packet. */
- if (m->m_flags & M_HASFCS) {
- m_adj(m, -IEEE80211_CRC_LEN);
- m->m_flags &= ~M_HASFCS;
- }
need_tap = 1; /* mbuf need to be tapped. */
type = -1; /* undefined */
/*
More information about the p4-projects
mailing list