diff options
Diffstat (limited to 'sys/dev')
-rw-r--r-- | sys/dev/ath/if_ath.c | 47 | ||||
-rw-r--r-- | sys/dev/iicbus/if_ic.c | 22 | ||||
-rw-r--r-- | sys/dev/ppbus/if_plip.c | 13 | ||||
-rw-r--r-- | sys/dev/wi/if_wi.c | 46 |
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 *); |