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;
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to