diff options
Diffstat (limited to 'sys/dev/ic/ti.c')
-rw-r--r-- | sys/dev/ic/ti.c | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/sys/dev/ic/ti.c b/sys/dev/ic/ti.c index dbcc1f9bdca..008ef34a26f 100644 --- a/sys/dev/ic/ti.c +++ b/sys/dev/ic/ti.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ti.c,v 1.13 2015/03/14 03:38:47 jsg Exp $ */ +/* $OpenBSD: ti.c,v 1.14 2015/05/19 11:24:01 mpi Exp $ */ /* * Copyright (c) 1997, 1998, 1999 @@ -1529,6 +1529,7 @@ void ti_rxeof(struct ti_softc *sc) { struct ifnet *ifp; + struct mbuf_list ml = MBUF_LIST_INITIALIZER(); struct ti_cmd_desc cmd; ifp = &sc->arpcom.ac_if; @@ -1602,7 +1603,6 @@ ti_rxeof(struct ti_softc *sc) m->m_pkthdr.len = m->m_len = cur_rx->ti_len; ifp->if_ipackets++; - m->m_pkthdr.rcvif = ifp; #if NVLAN > 0 if (cur_rx->ti_flags & TI_BDFLAG_VLAN_TAG) { @@ -1611,18 +1611,10 @@ ti_rxeof(struct ti_softc *sc) } #endif -#if NBPFILTER > 0 - /* - * Handle BPF listeners. Let the BPF user see the packet. - */ - if (ifp->if_bpf) - bpf_mtap_ether(ifp->if_bpf, m, BPF_DIRECTION_IN); -#endif - if ((cur_rx->ti_ip_cksum ^ 0xffff) == 0) m->m_pkthdr.csum_flags |= M_IPV4_CSUM_IN_OK; - ether_input_mbuf(ifp, m); + ml_enqueue(&ml, m); } /* Only necessary on the Tigon 1. */ @@ -1633,6 +1625,8 @@ ti_rxeof(struct ti_softc *sc) TI_UPDATE_STDPROD(sc, sc->ti_std); TI_UPDATE_MINIPROD(sc, sc->ti_mini); TI_UPDATE_JUMBOPROD(sc, sc->ti_jumbo); + + if_input(ifp, &ml); } void |