svn commit: r191534 - head/sys/net80211
Sam Leffler
sam at FreeBSD.org
Sun Apr 26 21:03:30 UTC 2009
Author: sam
Date: Sun Apr 26 21:03:29 2009
New Revision: 191534
URL: http://svn.freebsd.org/changeset/base/191534
Log:
o use shared code to handle bpf tap and mbuf cleanup
o swap conditional order to put the cheapest first
Modified:
head/sys/net80211/ieee80211_adhoc.c
head/sys/net80211/ieee80211_hostap.c
head/sys/net80211/ieee80211_sta.c
Modified: head/sys/net80211/ieee80211_adhoc.c
==============================================================================
--- head/sys/net80211/ieee80211_adhoc.c Sun Apr 26 21:03:27 2009 (r191533)
+++ head/sys/net80211/ieee80211_adhoc.c Sun Apr 26 21:03:29 2009 (r191534)
@@ -637,11 +637,8 @@ adhoc_input(struct ieee80211_node *ni, s
vap->iv_stats.is_rx_mgtdiscard++; /* XXX */
goto out;
}
- if (bpf_peers_present(vap->iv_rawbpf))
- bpf_mtap(vap->iv_rawbpf, m);
vap->iv_recv_mgmt(ni, m, subtype, rssi, noise, rstamp);
- m_freem(m);
- return IEEE80211_FC0_TYPE_MGT;
+ goto out;
case IEEE80211_FC0_TYPE_CTL:
vap->iv_stats.is_rx_ctl++;
@@ -657,7 +654,7 @@ err:
ifp->if_ierrors++;
out:
if (m != NULL) {
- if (bpf_peers_present(vap->iv_rawbpf) && need_tap)
+ if (need_tap && bpf_peers_present(vap->iv_rawbpf))
bpf_mtap(vap->iv_rawbpf, m);
m_freem(m);
}
Modified: head/sys/net80211/ieee80211_hostap.c
==============================================================================
--- head/sys/net80211/ieee80211_hostap.c Sun Apr 26 21:03:27 2009 (r191533)
+++ head/sys/net80211/ieee80211_hostap.c Sun Apr 26 21:03:29 2009 (r191534)
@@ -831,11 +831,8 @@ hostap_input(struct ieee80211_node *ni,
wh = mtod(m, struct ieee80211_frame *);
wh->i_fc[1] &= ~IEEE80211_FC1_WEP;
}
- if (bpf_peers_present(vap->iv_rawbpf))
- bpf_mtap(vap->iv_rawbpf, m);
vap->iv_recv_mgmt(ni, m, subtype, rssi, noise, rstamp);
- m_freem(m);
- return IEEE80211_FC0_TYPE_MGT;
+ goto out;
case IEEE80211_FC0_TYPE_CTL:
vap->iv_stats.is_rx_ctl++;
@@ -859,7 +856,7 @@ err:
ifp->if_ierrors++;
out:
if (m != NULL) {
- if (bpf_peers_present(vap->iv_rawbpf) && need_tap)
+ if (need_tap && bpf_peers_present(vap->iv_rawbpf))
bpf_mtap(vap->iv_rawbpf, m);
m_freem(m);
}
Modified: head/sys/net80211/ieee80211_sta.c
==============================================================================
--- head/sys/net80211/ieee80211_sta.c Sun Apr 26 21:03:27 2009 (r191533)
+++ head/sys/net80211/ieee80211_sta.c Sun Apr 26 21:03:29 2009 (r191534)
@@ -866,11 +866,8 @@ sta_input(struct ieee80211_node *ni, str
wh = mtod(m, struct ieee80211_frame *);
wh->i_fc[1] &= ~IEEE80211_FC1_WEP;
}
- if (bpf_peers_present(vap->iv_rawbpf))
- bpf_mtap(vap->iv_rawbpf, m);
vap->iv_recv_mgmt(ni, m, subtype, rssi, noise, rstamp);
- m_freem(m);
- return IEEE80211_FC0_TYPE_MGT;
+ goto out;
case IEEE80211_FC0_TYPE_CTL:
vap->iv_stats.is_rx_ctl++;
@@ -886,7 +883,7 @@ err:
ifp->if_ierrors++;
out:
if (m != NULL) {
- if (bpf_peers_present(vap->iv_rawbpf) && need_tap)
+ if (need_tap && bpf_peers_present(vap->iv_rawbpf))
bpf_mtap(vap->iv_rawbpf, m);
m_freem(m);
}
More information about the svn-src-all
mailing list