summaryrefslogtreecommitdiffstats
path: root/sys/dev/isa/if_ex.c
diff options
context:
space:
mode:
authormpi <mpi@openbsd.org>2015-05-19 11:24:01 +0000
committermpi <mpi@openbsd.org>2015-05-19 11:24:01 +0000
commitcdea9bebb25e29ddabda3dedf960fe7c56d14f38 (patch)
treebf321bec82340e8352752537f2dcca753fe9023c /sys/dev/isa/if_ex.c
parentWe cannot check for M_BCAST or M_MCAST now that vlan_input() is ran (diff)
downloadwireguard-openbsd-cdea9bebb25e29ddabda3dedf960fe7c56d14f38.tar.xz
wireguard-openbsd-cdea9bebb25e29ddabda3dedf960fe7c56d14f38.zip
Convert to if_input().
ok dlg@
Diffstat (limited to 'sys/dev/isa/if_ex.c')
-rw-r--r--sys/dev/isa/if_ex.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/sys/dev/isa/if_ex.c b/sys/dev/isa/if_ex.c
index 0c8f883616e..3366ffe80d9 100644
--- a/sys/dev/isa/if_ex.c
+++ b/sys/dev/isa/if_ex.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_ex.c,v 1.37 2014/12/22 02:28:51 tedu Exp $ */
+/* $OpenBSD: if_ex.c,v 1.38 2015/05/19 11:24:01 mpi Exp $ */
/*
* Copyright (c) 1997, Donald A. Schmidt
* Copyright (c) 1996, Javier Martín Rueda (jmrueda@diatel.upm.es)
@@ -639,6 +639,7 @@ void
ex_rx_intr(struct ex_softc *sc)
{
struct ifnet *ifp = &sc->arpcom.ac_if;
+ struct mbuf_list ml = MBUF_LIST_INITIALIZER();
int rx_status, pkt_len, QQQ;
struct mbuf *m, *ipkt;
@@ -661,7 +662,6 @@ ex_rx_intr(struct ex_softc *sc)
if (ipkt == NULL)
ifp->if_iqdrops++;
else {
- ipkt->m_pkthdr.rcvif = ifp;
ipkt->m_pkthdr.len = pkt_len;
ipkt->m_len = MHLEN;
while (pkt_len > 0) {
@@ -710,13 +710,8 @@ ex_rx_intr(struct ex_softc *sc)
} /* QQQ */
}
#endif
-#if NBPFILTER > 0
- if (ifp->if_bpf != NULL)
- bpf_mtap(ifp->if_bpf, ipkt,
- BPF_DIRECTION_IN);
-#endif
- ether_input_mbuf(ifp, ipkt);
ifp->if_ipackets++;
+ ml_enqueue(&ml, ipkt);
}
} else
ifp->if_ierrors++;
@@ -728,6 +723,8 @@ ex_rx_intr(struct ex_softc *sc)
else
CSR_WRITE_2(sc, RCV_STOP_REG, sc->rx_head - 2);
+ if_input(ifp, &ml);
+
DODEBUG(Start_End, printf("ex_rx_intr: finish\n"););
}