summaryrefslogtreecommitdiff
path: root/sys/dev/ic/ti.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/ic/ti.c')
-rw-r--r--sys/dev/ic/ti.c16
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