summaryrefslogtreecommitdiff
path: root/sys/dev/ic
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/ic')
-rw-r--r--sys/dev/ic/fxp.c17
1 files changed, 7 insertions, 10 deletions
diff --git a/sys/dev/ic/fxp.c b/sys/dev/ic/fxp.c
index d636a4d4d7a..681773a1323 100644
--- a/sys/dev/ic/fxp.c
+++ b/sys/dev/ic/fxp.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: fxp.c,v 1.118 2014/12/22 02:28:51 tedu Exp $ */
+/* $OpenBSD: fxp.c,v 1.119 2015/02/12 09:08:00 mpi Exp $ */
/* $NetBSD: if_fxp.c,v 1.2 1997/06/05 02:01:55 thorpej Exp $ */
/*
@@ -785,6 +785,7 @@ fxp_intr(void *arg)
{
struct fxp_softc *sc = arg;
struct ifnet *ifp = &sc->sc_arpcom.ac_if;
+ struct mbuf_list ml = MBUF_LIST_INITIALIZER();
u_int16_t statack;
bus_dmamap_t rxmap;
int claimed = 0;
@@ -911,15 +912,8 @@ rcvloop:
goto rcvloop;
}
- m->m_pkthdr.rcvif = ifp;
- m->m_pkthdr.len = m->m_len =
- total_len;
-#if NBPFILTER > 0
- if (ifp->if_bpf)
- bpf_mtap(ifp->if_bpf, m,
- BPF_DIRECTION_IN);
-#endif /* NBPFILTER > 0 */
- ether_input_mbuf(ifp, m);
+ m->m_pkthdr.len = m->m_len = total_len;
+ ml_enqueue(&ml, m);
}
goto rcvloop;
}
@@ -935,6 +929,9 @@ rcvloop:
}
}
+
+ if_input(ifp, &ml);
+
return (claimed);
}