summaryrefslogtreecommitdiffstats
path: root/sys/dev/usb/if_aue.c
diff options
context:
space:
mode:
authorwpaul <wpaul@FreeBSD.org>2000-01-14 01:36:16 +0000
committerwpaul <wpaul@FreeBSD.org>2000-01-14 01:36:16 +0000
commit3e7d8837770cd977fa12f623b643c4a90c566501 (patch)
tree1dc6e867f683d5a1839ea0130a0b401a4c4b64d3 /sys/dev/usb/if_aue.c
parentdd8ecc747f9ba945e64ed62031da95e7638919e2 (diff)
downloadFreeBSD-src-3e7d8837770cd977fa12f623b643c4a90c566501.zip
FreeBSD-src-3e7d8837770cd977fa12f623b643c4a90c566501.tar.gz
Pull my head out of my ass and actually make the tx netisr stuff work right.
Do not not not call m_freem() in the txeof routines. Let the netisr routine do it. This also makes the tx netisr queuing much simpler (I can just use another ifqueue instead of the mess I had before.) Thanks to Bosko Milekic for making me actually think about what I was doing for a minute.
Diffstat (limited to 'sys/dev/usb/if_aue.c')
-rw-r--r--sys/dev/usb/if_aue.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/sys/dev/usb/if_aue.c b/sys/dev/usb/if_aue.c
index 0e7ea70..277d913 100644
--- a/sys/dev/usb/if_aue.c
+++ b/sys/dev/usb/if_aue.c
@@ -1036,7 +1036,8 @@ static void aue_txeof(xfer, priv, status)
ifp->if_flags &= ~IFF_OACTIVE;
usbd_get_xfer_status(c->aue_xfer, NULL, NULL, NULL, &err);
- m_freem(c->aue_mbuf);
+ c->aue_mbuf->m_pkthdr.rcvif = ifp;
+ usb_tx_done(c->aue_mbuf);
c->aue_mbuf = NULL;
if (err)
@@ -1044,8 +1045,6 @@ static void aue_txeof(xfer, priv, status)
else
ifp->if_opackets++;
- usb_tx_done(ifp);
-
splx(s);
return;
OpenPOWER on IntegriCloud