summaryrefslogtreecommitdiff
path: root/sys/dev/pci/if_bce.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/pci/if_bce.c')
-rw-r--r--sys/dev/pci/if_bce.c18
1 files changed, 6 insertions, 12 deletions
diff --git a/sys/dev/pci/if_bce.c b/sys/dev/pci/if_bce.c
index 92f9e146099..286239e93e4 100644
--- a/sys/dev/pci/if_bce.c
+++ b/sys/dev/pci/if_bce.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_bce.c,v 1.43 2015/03/14 03:38:48 jsg Exp $ */
+/* $OpenBSD: if_bce.c,v 1.44 2015/04/08 10:07:47 mpi Exp $ */
/* $NetBSD: if_bce.c,v 1.3 2003/09/29 01:53:02 mrg Exp $ */
/*
@@ -694,6 +694,7 @@ void
bce_rxintr(struct bce_softc *sc)
{
struct ifnet *ifp = &sc->bce_ac.ac_if;
+ struct mbuf_list ml = MBUF_LIST_INITIALIZER();
struct rx_pph *pph;
struct mbuf *m;
int curr;
@@ -741,17 +742,7 @@ bce_rxintr(struct bce_softc *sc)
BCE_PREPKT_HEADER_SIZE, len, ETHER_ALIGN, ifp);
ifp->if_ipackets++;
-#if NBPFILTER > 0
- /*
- * Pass this up to any BPF listeners, but only
- * pass it up the stack if it's for us.
- */
- if (ifp->if_bpf)
- bpf_mtap(ifp->if_bpf, m, BPF_DIRECTION_IN);
-#endif
-
- /* Pass it on. */
- ether_input_mbuf(ifp, m);
+ ml_enqueue(&ml, m);
/* re-check current in case it changed */
curr = (bus_space_read_4(sc->bce_btag, sc->bce_bhandle,
@@ -760,6 +751,9 @@ bce_rxintr(struct bce_softc *sc)
if (curr >= BCE_NRXDESC)
curr = BCE_NRXDESC - 1;
}
+
+ if_input(ifp, &ml);
+
sc->bce_rxin = curr;
}