summaryrefslogtreecommitdiff
path: root/sys/dev/pci/if_nge.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/pci/if_nge.c')
-rw-r--r--sys/dev/pci/if_nge.c16
1 files changed, 5 insertions, 11 deletions
diff --git a/sys/dev/pci/if_nge.c b/sys/dev/pci/if_nge.c
index fe685e59506..4fdf2c83ce6 100644
--- a/sys/dev/pci/if_nge.c
+++ b/sys/dev/pci/if_nge.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_nge.c,v 1.81 2014/12/22 02:28:52 tedu Exp $ */
+/* $OpenBSD: if_nge.c,v 1.82 2015/04/08 10:07:47 mpi Exp $ */
/*
* Copyright (c) 2001 Wind River Systems
* Copyright (c) 1997, 1998, 1999, 2000, 2001
@@ -1002,6 +1002,7 @@ nge_newbuf(struct nge_softc *sc, struct nge_desc *c, struct mbuf *m)
void
nge_rxeof(struct nge_softc *sc)
{
+ struct mbuf_list ml = MBUF_LIST_INITIALIZER();
struct mbuf *m;
struct ifnet *ifp;
struct nge_desc *cur_rx;
@@ -1076,7 +1077,6 @@ nge_rxeof(struct nge_softc *sc)
m = m0;
#ifndef __STRICT_ALIGNMENT
} else {
- m->m_pkthdr.rcvif = ifp;
m->m_pkthdr.len = m->m_len = total_len;
}
#endif
@@ -1091,14 +1091,6 @@ nge_rxeof(struct nge_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
-
/* Do IP checksum checking. */
if (extsts & NGE_RXEXTSTS_IPPKT) {
if (!(extsts & NGE_RXEXTSTS_IPCSUMERR))
@@ -1111,9 +1103,11 @@ nge_rxeof(struct nge_softc *sc)
m->m_pkthdr.csum_flags |= M_UDP_CSUM_IN_OK;
}
- ether_input_mbuf(ifp, m);
+ ml_enqueue(&ml, m);
}
+ if_input(ifp, &ml);
+
sc->nge_cdata.nge_rx_prod = i;
}