diff options
author | Martin Pieuchot <mpi@cvs.openbsd.org> | 2015-02-12 22:39:28 +0000 |
---|---|---|
committer | Martin Pieuchot <mpi@cvs.openbsd.org> | 2015-02-12 22:39:28 +0000 |
commit | 4b35ba45f0345b0f3b830ff77835f5f3c7b4538e (patch) | |
tree | f8348f3ce947ad56401a5814dbd9b41a68e5bf40 /sys/dev/usb | |
parent | ddeb028723637ca0da6789f41fd1cd5245dc93ba (diff) |
Convert to if_input().
ok dlg@
Diffstat (limited to 'sys/dev/usb')
-rw-r--r-- | sys/dev/usb/if_axe.c | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/sys/dev/usb/if_axe.c b/sys/dev/usb/if_axe.c index f3ca9500d70..2a7c3f7d983 100644 --- a/sys/dev/usb/if_axe.c +++ b/sys/dev/usb/if_axe.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_axe.c,v 1.128 2014/12/22 02:28:52 tedu Exp $ */ +/* $OpenBSD: if_axe.c,v 1.129 2015/02/12 22:39:27 mpi Exp $ */ /* * Copyright (c) 2005, 2006, 2007 Jonathan Gray <jsg@openbsd.org> @@ -973,6 +973,7 @@ axe_rxeof(struct usbd_xfer *xfer, void *priv, usbd_status status) struct axe_chain *c = (struct axe_chain *)priv; struct axe_softc *sc = c->axe_sc; struct ifnet *ifp = GET_IFP(sc); + struct mbuf_list ml = MBUF_LIST_INITIALIZER(); u_char *buf = c->axe_buf; u_int32_t total_len; u_int16_t pktlen = 0; @@ -1047,25 +1048,20 @@ axe_rxeof(struct usbd_xfer *xfer, void *priv, usbd_status status) } ifp->if_ipackets++; - m->m_pkthdr.rcvif = ifp; m->m_pkthdr.len = m->m_len = pktlen; memcpy(mtod(m, char *), buf, pktlen); - /* push the packet up */ - s = splnet(); -#if NBPFILTER > 0 - if (ifp->if_bpf) - bpf_mtap(ifp->if_bpf, m, BPF_DIRECTION_IN); -#endif - - ether_input_mbuf(ifp, m); - - splx(s); + ml_enqueue(&ml, m); } while (total_len > 0); done: + /* push the packet up */ + s = splnet(); + if_input(ifp, &ml); + splx(s); + memset(c->axe_buf, 0, sc->axe_bufsz); /* Setup new transfer. */ |