From owner-p4-projects@FreeBSD.ORG Tue May 15 11:33:15 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D6C6816A405; Tue, 15 May 2007 11:33:14 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 8CA2316A402 for ; Tue, 15 May 2007 11:33:14 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 7CE1B13C4C2 for ; Tue, 15 May 2007 11:33:14 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l4FBXEgH006112 for ; Tue, 15 May 2007 11:33:14 GMT (envelope-from sephe@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l4FBXE1F006105 for perforce@freebsd.org; Tue, 15 May 2007 11:33:14 GMT (envelope-from sephe@FreeBSD.org) Date: Tue, 15 May 2007 11:33:14 GMT Message-Id: <200705151133.l4FBXE1F006105@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau To: Perforce Change Reviews Cc: Subject: PERFORCE change 119878 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 May 2007 11:33:15 -0000 http://perforce.freebsd.org/chv.cgi?CH=119878 Change 119878 by sephe@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 */ /*