summaryrefslogtreecommitdiffstats
path: root/sys/dev
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/ath/if_ath.c47
-rw-r--r--sys/dev/iicbus/if_ic.c22
-rw-r--r--sys/dev/ppbus/if_plip.c13
-rw-r--r--sys/dev/wi/if_wi.c46
4 files changed, 28 insertions, 100 deletions
diff --git a/sys/dev/ath/if_ath.c b/sys/dev/ath/if_ath.c
index 55467db..3a7313d 100644
--- a/sys/dev/ath/if_ath.c
+++ b/sys/dev/ath/if_ath.c
@@ -777,20 +777,10 @@ ath_start(struct ifnet *ifp)
bpf_mtap(ic->ic_rawbpf, m);
if (sc->sc_drvbpf) {
- struct mbuf *mb;
-
- MGETHDR(mb, M_DONTWAIT, m->m_type);
- if (mb != NULL) {
- sc->sc_tx_th.wt_rate =
- ni->ni_rates.rs_rates[ni->ni_txrate];
-
- mb->m_next = m;
- mb->m_data = (caddr_t)&sc->sc_tx_th;
- mb->m_len = sizeof(sc->sc_tx_th);
- mb->m_pkthdr.len += mb->m_len;
- bpf_mtap(sc->sc_drvbpf, mb);
- m_free(mb);
- }
+ sc->sc_tx_th.wt_rate =
+ ni->ni_rates.rs_rates[ni->ni_txrate];
+ bpf_mtap2(sc->sc_drvbpf,
+ &sc->sc_tx_th, sizeof(sc->sc_tx_th), m);
}
if (ath_tx_start(sc, ni, bf, m)) {
@@ -1711,27 +1701,14 @@ ath_rx_proc(void *arg, int npending)
m->m_pkthdr.len = m->m_len = len;
if (sc->sc_drvbpf) {
- struct mbuf *mb;
-
- /* XXX pre-allocate space when setting up recv's */
- MGETHDR(mb, M_DONTWAIT, m->m_type);
- if (mb != NULL) {
- sc->sc_rx_th.wr_rate =
- sc->sc_hwmap[ds->ds_rxstat.rs_rate];
- sc->sc_rx_th.wr_antsignal =
- ds->ds_rxstat.rs_rssi;
- sc->sc_rx_th.wr_antenna =
- ds->ds_rxstat.rs_antenna;
- /* XXX TSF */
-
- (void) m_dup_pkthdr(mb, m, M_DONTWAIT);
- mb->m_next = m;
- mb->m_data = (caddr_t)&sc->sc_rx_th;
- mb->m_len = sizeof(sc->sc_rx_th);
- mb->m_pkthdr.len += mb->m_len;
- bpf_mtap(sc->sc_drvbpf, mb);
- m_free(mb);
- }
+ sc->sc_rx_th.wr_rate =
+ sc->sc_hwmap[ds->ds_rxstat.rs_rate];
+ sc->sc_rx_th.wr_antsignal = ds->ds_rxstat.rs_rssi;
+ sc->sc_rx_th.wr_antenna = ds->ds_rxstat.rs_antenna;
+ /* XXX TSF */
+
+ bpf_mtap2(sc->sc_drvbpf,
+ &sc->sc_rx_th, sizeof(sc->sc_rx_th), m);
}
m_adj(m, -IEEE80211_CRC_LEN);
diff --git a/sys/dev/iicbus/if_ic.c b/sys/dev/iicbus/if_ic.c
index a98720f..e712b9b 100644
--- a/sys/dev/iicbus/if_ic.c
+++ b/sys/dev/iicbus/if_ic.c
@@ -66,7 +66,7 @@ __FBSDID("$FreeBSD$");
#define PCF_MASTER_ADDRESS 0xaa
-#define ICHDRLEN sizeof(u_int)
+#define ICHDRLEN sizeof(u_int32_t)
#define ICMTU 1500 /* default mtu */
struct ic_softc {
@@ -369,7 +369,7 @@ icoutput(struct ifnet *ifp, struct mbuf *m,
int s, len, sent;
struct mbuf *mm;
u_char *cp;
- u_int hdr = dst->sa_family;
+ u_int32_t hdr = dst->sa_family;
ifp->if_flags |= IFF_RUNNING;
@@ -400,23 +400,7 @@ icoutput(struct ifnet *ifp, struct mbuf *m,
} while ((mm = mm->m_next));
- if (ifp->if_bpf) {
- struct mbuf m0, *n = m;
-
- /*
- * We need to prepend the address family as
- * a four byte field. Cons up a dummy header
- * to pacify bpf. This is safe because bpf
- * will only read from the mbuf (i.e., it won't
- * try to free it or keep a pointer a to it).
- */
- m0.m_next = m;
- m0.m_len = sizeof(u_int);
- m0.m_data = (char *)&hdr;
- n = &m0;
-
- BPF_MTAP(ifp, n);
- }
+ BPF_MTAP2(ifp, &hdr, sizeof(hdr), m);
sc->ic_sending = 1;
diff --git a/sys/dev/ppbus/if_plip.c b/sys/dev/ppbus/if_plip.c
index ab02841..32221c7 100644
--- a/sys/dev/ppbus/if_plip.c
+++ b/sys/dev/ppbus/if_plip.c
@@ -445,19 +445,8 @@ clpinbyte (int spin, device_t ppbus)
static void
lptap(struct ifnet *ifp, struct mbuf *m)
{
- /*
- * Send a packet through bpf. We need to prepend the address family
- * as a four byte field. Cons up a dummy header to pacify bpf. This
- * is safe because bpf will only read from the mbuf (i.e., it won't
- * try to free it or keep a pointer to it).
- */
u_int32_t af = AF_INET;
- struct mbuf m0;
-
- m0.m_next = m;
- m0.m_len = sizeof(u_int32_t);
- m0.m_data = (char *)⁡
- BPF_MTAP(ifp, &m0);
+ BPF_MTAP2(ifp, &af, sizeof(af), m);
}
static void
diff --git a/sys/dev/wi/if_wi.c b/sys/dev/wi/if_wi.c
index 53086c3..a99f96f 100644
--- a/sys/dev/wi/if_wi.c
+++ b/sys/dev/wi/if_wi.c
@@ -947,17 +947,8 @@ wi_start(struct ifnet *ifp)
frmhdr.wi_dat_len = htole16(m0->m_pkthdr.len);
#if NBPFILTER > 0
if (sc->sc_drvbpf) {
- struct mbuf *mb;
-
- MGETHDR(mb, M_DONTWAIT, m0->m_type);
- if (mb != NULL) {
- mb->m_next = m0;
- mb->m_data = (caddr_t)&sc->sc_tx_th;
- mb->m_len = sizeof(sc->sc_tx_th);
- mb->m_pkthdr.len += mb->m_len;
- bpf_mtap(sc->sc_drvbpf, mb);
- m_free(mb);
- }
+ bpf_mtap2(sc->sc_drvbpf,
+ &sc->sc_tx_th, sizeof(sc->sc_tx_th), m0);
}
#endif
if (IFF_DUMPPKTS(ifp))
@@ -1496,29 +1487,16 @@ wi_rx_intr(struct wi_softc *sc)
#if NBPFILTER > 0
if (sc->sc_drvbpf) {
- struct mbuf *mb;
-
- /* XXX pre-allocate space when setting up recv's */
- MGETHDR(mb, M_DONTWAIT, m->m_type);
- if (mb != NULL) {
- /* XXX replace divide by table */
- sc->sc_rx_th.wr_rate = frmhdr.wi_rx_rate / 5;
- sc->sc_rx_th.wr_antsignal =
- WI_RSSI_TO_DBM(sc, frmhdr.wi_rx_signal);
- sc->sc_rx_th.wr_antnoise =
- WI_RSSI_TO_DBM(sc, frmhdr.wi_rx_silence);
- sc->sc_rx_th.wr_time =
- htole32((frmhdr.wi_rx_tstamp1 << 16) |
- frmhdr.wi_rx_tstamp0);
-
- (void) m_dup_pkthdr(mb, m, M_DONTWAIT);
- mb->m_next = m;
- mb->m_data = (caddr_t)&sc->sc_rx_th;
- mb->m_len = sizeof(sc->sc_rx_th);
- mb->m_pkthdr.len += mb->m_len;
- bpf_mtap(sc->sc_drvbpf, mb);
- m_free(mb);
- }
+ sc->sc_rx_th.wr_rate = frmhdr.wi_rx_rate / 5;
+ sc->sc_rx_th.wr_antsignal =
+ WI_RSSI_TO_DBM(sc, frmhdr.wi_rx_signal);
+ sc->sc_rx_th.wr_antnoise =
+ WI_RSSI_TO_DBM(sc, frmhdr.wi_rx_silence);
+ sc->sc_rx_th.wr_time =
+ htole32((frmhdr.wi_rx_tstamp1 << 16) |
+ frmhdr.wi_rx_tstamp0);
+ bpf_mtap2(sc->sc_drvbpf,
+ &sc->sc_rx_th, sizeof(sc->sc_rx_th), m);
}
#endif
wh = mtod(m, struct ieee80211_frame *);
OpenPOWER on IntegriCloud