From owner-svn-src-all@FreeBSD.ORG Sun Apr 26 22:45:22 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3B32310656C2; Sun, 26 Apr 2009 22:45:22 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 27E6C8FC13; Sun, 26 Apr 2009 22:45:22 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n3QMjMHs097143; Sun, 26 Apr 2009 22:45:22 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3QMjMEs097141; Sun, 26 Apr 2009 22:45:22 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200904262245.n3QMjMEs097141@svn.freebsd.org> From: Sam Leffler Date: Sun, 26 Apr 2009 22:45:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r191550 - head/sys/net80211 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2009 22:45:24 -0000 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;