summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/arch/socppc/dev/if_tsec.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/sys/arch/socppc/dev/if_tsec.c b/sys/arch/socppc/dev/if_tsec.c
index 5cc4c220600..3fd045bb686 100644
--- a/sys/arch/socppc/dev/if_tsec.c
+++ b/sys/arch/socppc/dev/if_tsec.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_tsec.c,v 1.34 2014/12/22 02:26:53 tedu Exp $ */
+/* $OpenBSD: if_tsec.c,v 1.35 2015/03/10 11:17:55 mpi Exp $ */
/*
* Copyright (c) 2008 Mark Kettenis
@@ -838,6 +838,7 @@ tsec_rx_proc(struct tsec_softc *sc)
struct ifnet *ifp = &sc->sc_ac.ac_if;
struct tsec_desc *rxd;
struct tsec_buf *rxb;
+ struct mbuf_list ml = MBUF_LIST_INITIALIZER();
struct mbuf *m;
int idx, len;
@@ -870,17 +871,11 @@ tsec_rx_proc(struct tsec_softc *sc)
m = rxb->tb_m;
rxb->tb_m = NULL;
- m->m_pkthdr.rcvif = ifp;
m->m_pkthdr.len = m->m_len = len;
ifp->if_ipackets++;
-#if NBPFILTER > 0
- if (ifp->if_bpf)
- bpf_mtap(ifp->if_bpf, m, BPF_DIRECTION_IN);
-#endif
-
- ether_input_mbuf(ifp, m);
+ ml_enqueue(&ml, m);
if_rxr_put(&sc->sc_rx_ring, 1);
if (rxd->td_status & TSEC_RX_W)
@@ -894,6 +889,8 @@ tsec_rx_proc(struct tsec_softc *sc)
bus_dmamap_sync(sc->sc_dmat, TSEC_DMA_MAP(sc->sc_rxring), 0,
TSEC_DMA_LEN(sc->sc_rxring),
BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE);
+
+ if_input(ifp, &ml);
}
void